ページ一覧を開く

DOMAIN-DRIVEN DESIGN

DDDとは

DDDは、業務に詳しい人(ドメインエキスパート)と開発者が同じ言葉を使い、業務への理解をドメインモデルとコードへ直接反映する開発アプローチです。

なぜDDDは生まれたのか

複雑な業務には、多くのルールや状況に応じた判断があります。業務への理解が十分でないままシステムを作ると、実際の業務ルールとコードにずれが生まれます。その結果、機能は動いていても、実際の業務上の問題を解決できていないシステムになります。

Eric Evansは、複雑な業務システムの開発経験から、うまくいったプロジェクトには共通点があることに気づきました。

そこでは、業務に詳しい人と開発者が同じ言葉で話し、システムに必要な業務の仕組みやルールを整理していました。こうして整理したものが、ドメインモデルです。

さらに、整理した言葉やルールをコードの名前や処理にも使い、新しい発見があればドメインモデルとコードを見直していました。Evansは、こうした実践をDDDとして体系化しました。

DDDは一度決めて終わりではない

業務への理解は、話し合いや実装を通じて深まります。新しく分かったことがあれば、ドメインモデルとコードを見直します。