Learn : Domain Drive Design

2019/10/24(Thu) - 17:18

DDDを3行で説明すると

  1. ドメインとコンテキストを分割することで、業務とシステムを適切に分割
  2. 「ユビキタス言語」の制定により、顧客と開発者間で会話した通りに実装
  3. 業務を抽象化した「ドメインモデル」用いた開発で変化に柔軟に対応できる

設計 = コードである状況とは

「ゲスト会員」というユビキタス言語があれば「GuestUser」というオブジェクトが出来、

ドメインモデル

ドメインモデルはユースケースを元に見つけられるもので「ドメインモデル」はその名の通り、複雑な業務ドメインの中から、システムに必要な概念を適切に抽出する方法となります。

「戦略的設計」と「戦術的設計」

「戦略的設計」とは「チームで使うパターン」のこと。

ビジネスにおける言語に価値を置き、業務に関わる人の考え方をドメインモデルとして表現する、いわば全体の道標的なもの。

「戦術的設計」とは「テクニカルなパターン」のこと。

アーキテクチャ、DDD固有のパターンといった技術的な内容が含まれる。

## 各々のポジション

チーム(顧客から開発者まで全てを含む)
  └ ユビキタス言語(ひとつの共通言語)
    └ ドメインモデル(現実世界を抽象化したモデルをコードとして実装)
      ├ 戦略的設計(Why / What / Who / When / Where)
      ┃  ├ ドメイン(コアドメイン / サブドメイン)
      ┃  └ 境界づけられたコンテキスト
      └ 戦術的設計(How)
        ├ 値オブジェクト
         ├ エンティティ
         ├ サービス
         ├ ドメインイベント
         ├ ファクトリ
         ├ アプリケーション
         ├ 集約
         ├ リポジトリ
         └ モジュール

1章「DDDへの誘い」

DDDは現状を変えて、よくしたいという思いがある方ならば誰でも実施可能。

カテゴリ

タグ