エリックエバンスのドメイン駆動設計の「第4部 戦略的設計」まとめ

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

今回は、「第4部 戦略的設計」のまとめです。

たった2ページですが、すごい重要そうな臭いがプンプンしますね。

大規模エンタープライズの課題

大規模エンタープライズの課題として、以下2点が挙げられます。

  • あらゆるものを含む一枚岩のドメインモデルは大きすぎて扱いにくく、微妙な重複と矛盾が詰め込まれる。

  • 別々の小さなサブシステムの統合がその場しのぎのインタフェースでつなぎ合わされていたら、エンタープライズ全体の問題を解決する力は失われる。また、統合のあらゆるポイントにおいて、一貫性に関わる問題が発生する。

進化する体系的な設計戦略によって、課題を解決できます。

戦略的設計の原則

設計上の意思決定を導いて、各システムの相互依存関係を減らし、設計をより明確にしながら、重要な相互運用性と相乗効果を得る必要があります。

また、システムの概念的にコアを捉えるモデルに集中します。

戦略的設計の具体的なアプローチ

戦略的設計の具体的なアプローチとして、

  • コンテキスト

  • 蒸留

  • 大規模な構造

があります。

コンテキスト

明示的に境界づけられたコンテキストを定義した上で、モデルを適用するのはコンテキスト内部に限定します。 さらに、必要に応じてコンテキスト同士の関係も定義することによって、モデルの質が低下するのを避けます。

蒸留

注意の対象をコアとなる場所に絞り、他の要素を脇役として示せるようになります。

大規模な構造

全く異なるものから構成される部分に一貫性をもたらして、それらの部分を調和させる上での助けになります。

まとめ

「大規模な構造」と「蒸留」によって、各システム間にある複雑な関係を理解できるようになる一方で、全体像を見失わずにいられます。

境界づけられたコンテキストによって、別々のシステムの作業を進めても、モデルを壊してしまったり、意図せず断片化してしまったりすることがなくなります。

以上が「第4部 戦略的設計」のまとめです。 具体的な話は、この次からになります。