DDDを始める:Spring Boot実践プロジェクト作成

DDDを勉強し始めたものの、 いざプロジェクトをどう始めればいいか分からず、途方に暮れた経験はありませんか? この講義では、 "DDD(ドメイン駆動設計)を適用するための開発環境からプロジェクト構造まで" 最初から一歩ずつ作っていきます。 Spring Boot、Java 21、Gradle、PostgreSQLをベースに、 "DDD設計を開始できる実践的な開発環境を自ら構築し"、 DDDプロジェクトをどのように開始し、設計すべきか、その全体的な流れを一緒に見ていきます。 単なる理論の説明ではなく、 "実際のプロジェクトを作りながら、DDD設計の出発点を掴むプロセス"を扱います。 DDDを勉強したいけれど、どこから手をつければいいか分からなかった方々が、 "実際に動作するプロジェクト環境"

4名 が受講中です。

難易度 初級

受講期間 2か月

Java
Java
REST API
REST API
Spring Boot
Spring Boot
MSA
MSA
backend
backend
Java
Java
REST API
REST API
Spring Boot
Spring Boot
MSA
MSA
backend
backend

受講後に得られること

  • DDD設計を開始できるSpring Bootベースの開発環境を自ら構築することができます。

  • DDDプロジェクトを開始するための基本的なプロジェクト構造と設計フローを理解することができます。

  • DDD学習のための、実際に動作するプロジェクトの基盤を自ら作成することができます。

授業紹介

この授業はSpring BootベースのJavaバックエンドプロジェクトを中心に、
REST APIの設計から始めて、段階的にDDDとMSA構造へと拡張していく過程を扱います。

そしてDDD(Domain Driven Design)の核心概念とともに
Clean Architecture / Hexagonal Architecture構造を基盤に、
ドメインをどのように設計すべきか、全体の流れを理解します。


なぜDDDが必要なのか?

従来のモノリシック構造では、次のような問題が発生します。

  • ビジネスロジックと技術コードの混在

  • 変更時の影響範囲が大きくなる

  • ドメインルールが次第に曖昧になる

DDDは、これらの問題を解決するために
ドメイン中心に設計する手法を提案しています。



全体構造の理解(核心)


1. Clean Architecture 構造

  • Entities (ドメインの核心)

  • Use Case (ビジネスロジック)

  • Interface Adapter (Controller, Presenter など)

  • Framework (DB, Webなど)

核心ルール:

👉 依存性は常に外側から内側へと流れる

つまり、
DBや外部システムはドメインを知らなくてもいいですが、
ドメインは外部の技術に依存してはいけません。


2. Hexagonal Architecture (Ports & Adapters)

構造をより具体的に見ると、次のようになります。

  • Application Core

    • Use Case

    • Entity

  • Input Port / Output Port

    • 外部と接続されるインターフェース

  • アダプター

    • Web Adapter (Controller)

    • Persistence Adapter (DB)

    • External System Adapter

コアコンセプト:

👉 ビジネスロジックはポートを通じてのみ外部と接続される


主要構成要素のまとめ

Entity

  • ドメインの核心オブジェクト

  • ビジネスルールを含む

  • 外部技術と完全に分離される

ユースケース

  • 実際のサービスロジックを実行

  • Entityを組み合わせて機能を実装

Port

  • 外部と接続されるインターフェース

  • Applicationが依存する境界

Adapter

  • Portを実装する実際の技術コード

  • DB、API、外部システムとの接続を担当


Bounded Context(境界づけられたコンテキスト)の概念

同じ用語でも、コンテキストによって意味が異なる場合があります。

例:

  • 注文(Order) = 注文作成の観点

  • 注文(Order) = 決済処理の観点

したがって
👉 コンテキストごとにモデルを分離することで、複雑さが軽減されます


まとめ(このレッスンの核心)

この授業で必ず持ち帰るべき核心は次になります。

  • ドメインは常に中心に位置しなければならない

  • ビジネスロジックは技術コードと分離しなければならない

  • 外部システムはAdapterを通じてのみ接続する

  • 構造を分ける理由は「保守性と拡張性」のためだ。


次のステップのご案内

それでは、次のレッスンでは
👉 現在のモノリス構造をベースに
👉 実際にDDD構造へリファクタリングする過程を進めていきます。

概念を理解した状態で
コードに適用する流れを繋げてみることが核心です。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • DDDを勉強したいが、プロジェクトをどのように始めればよいか分からず途方に暮れている開発者

  • Spring BootベースでDDDプロジェクトを初めて作ってみたいバックエンド開発者

  • 実務で活用できるDDDプロジェクトの構造と開始方法を学びたい開発者

前提知識、
必要でしょうか?

  • Java基本文法の理解

  • Spring Bootの基本使用経験

こんにちは
truthplumage1363です。

15年目の現役エンジニア ・ 月1000万円の収益構造を作ったエンジニア

単にコーディングを教えるのではありません。
「開発が自分の進むべき道なのか」を判断できる基準を提供します。

非専攻者、就職準備生、キャリアチェンジを悩んでいる方々と
現実的なキャリア戦略を共に設計します。

もっと見る

カリキュラム

全体

16件 ∙ (2時間 25分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥24,750

50%

¥6,333