DOMAIN-DRIVEN DESIGN
DDDとは
DDDは、業務に詳しい人(ドメインエキスパート)と開発者が同じ言葉を使い、業務への理解をドメインモデルとコードへ直接反映する開発アプローチです。
なぜDDDは生まれたのか
複雑な業務には、多くのルールや状況に応じた判断があります。業務への理解が十分でないままシステムを作ると、実際の業務ルールとコードにずれが生まれます。その結果、機能は動いていても、実際の業務上の問題を解決できていないシステムになります。
Eric Evansは、複雑な業務システムの開発経験から、うまくいったプロジェクトには共通点があることに気づきました。
そこでは、業務に詳しい人と開発者が同じ言葉で話し、システムに必要な業務の仕組みやルールを整理していました。こうして整理したものが、ドメインモデルです。
さらに、整理した言葉やルールをコードの名前や処理にも使い、新しい発見があればドメインモデルとコードを見直していました。Evansは、こうした実践をDDDとして体系化しました。
DDDは一度決めて終わりではない
業務への理解は、話し合いや実装を通じて深まります。新しく分かったことがあれば、ドメインモデルとコードを見直します。