モデル駆動設計
通常、ある業務をシステムに落とし込む時、「現実の業務を適切に抽象化した分析モデルの作成」、「分析モデルを基にした設計」という2回の射影が行われます。 具体的には、前者はユーザヒアリングによる要件抽出、後者は要件を基にした仕様書作成/実装となるでしょうか。 しかし多くの場合、実装上考慮せざるを得ない概念(永続化など)により、分析モデルには存在しない新たな抽象化が設計では必要になります。これにより分析モデルと設計はどんどん乖離していき、どれだけ緻密に分析モデルを作成しても、それが設計に反映されているという保証は無くなってしまいます。
分析モデルと設計とを一致させるアイディアがDDDのポイント
ドメインイベント
https://gyazo.com/6bce71c361f21850399093942dfb1def