エリック・エバンスのドメイン駆動設計の導入まとめ

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

『エリック・エバンスのドメイン駆動設計』を久しぶりに読み始めました。 まずは、導入部分として

  • 序文

  • まえがき をまとめます。

ドメイン駆動設計の原則

ドメイン駆動設計の原則として、以下3点が挙げられています。

  • コアドメインに集中すること

  • ドメインエキスパートと技術者による共同作業を通して、モデルを探求すること

  • 対象領域内で、ユビキタス言語を語ること

コアドメインに集中すること

多くのアプリケーションにおいて、一番複雑なのは『ユーザの活動やビジネスそのもの。いわゆるドメイン』であると書かれています。

これにより、技術的な部分よりもドメインのほうが複雑であると考えられます。

技術的な部分を適切に設計されていても、ドメインの複雑性を設計していなければ、設計としては失敗という結果になります。

そのため、アプリケーションの中心はドメインにすべきということです。

ドメインエキスパートと技術者による共同作業を通して、モデルを探求すること

ドメインに対しての深い理解と集中すべき主要な概念を反映したモデルを作成する必要があります。

そのためには、ドメインエキスパートと技術者の共同作業でモデルを作り上げていく必要があります。

また、モデルはプロジェクト初期から継続して、時間と共に進化していきます。

もしかしたら、リリース後にモデルの新たな一面を発見する可能性もあります。

モデルの進化に関して、わかりやすい図がブログに書かれていたので、以下引用します。 f:id:mmm-mao:20150416213459j:plain

引用元 【アジャイル開発 X 設計】DDD(ドメイン駆動開発)に入門してみた | For X Developers

対象領域内で、ユビキタス言語を語ること

ユビキタス言語により、ドメインエキスパートと技術者を結びつけます。

なので、モデルを作成するための共同作業は、両者で共通認識の言語を形成していくプロセスということになります。

以上が導入までのまとめです。 わずか10ページくらいですが、すごい内容の濃い部分でした。