ドメイン駆動設計の話とアプリケーションアーキテクチャの話がごっちゃになっていることが多い。
ビジネスロジックをプレゼンテーションや永続化から分離して独立させることが重要。
独立させた後はビジネスロジックのクラス設計に焦点を合わせる。
プレゼンテーションと永続化はいったん無視する。
そういうアプローチがドメイン駆動設計の要点。
このアプローチが良いかどうかは意見が分かれるのが当たり前。
プレゼンテーションや永続化はいったん忘れることに違和感を持つ方が自然だろうし、実際、ドメイン駆動設計と言いながら永続化とデータモデルに焦点を合わせた話が多い。
ドメインロジックを表現するクラス設計を他の要素から独立させるというのは、そうとう難易度が高い設計アプローチ。
技術スキルというより、画面やデータベースからのアプローチから離れることの難しさ。
ドメイン駆動設計は「業務シミュレータ」を実装することが重要と言えばまだ通じるだろうか。
「業務シミュレータ」を作ることが重要なので、外界との接点になるプレゼンテーション層や永続化層は本質ではない(のであえて無視する)。
なので、シンプルなCRUDアプリを作る場合はDDDはオーバーヘッドの大きい非効率なプロセスでもある。