9章

通信

 第5章から第8章まで、システム全体を構成する個々のコンポーネントをどう実装するかを説明してきました。つまり、業務ロジックをどのように実装し、単一の区切られた文脈の内部をどのように構造化するかです。この章では、個々のコンポーネントの境界を越え、コンポーネントどうしの連係を実現する方法を検討します。

 この章で学ぶ内容は、以下のとおりです。

  • 区切られた文脈どうしの通信方法
  • 集約の設計原則に起因する連係方法の制約に対処する方法
  • 複数の区切られた文脈にまたがる業務プロセスの実現方法

9.1 モデルの変換

 区切られた文脈はモデル、つまり同じ言葉の境界です。第4章で学んだように、区切られた文脈どうしの連係方法は、いろいろな選択肢があります。異なる区切られた文脈を開発する二つのチームが、お互いの意図をうまく伝え、協力して開発を進めることに積極的ならば、良きパートナーの関係で二つの区切られた文脈を連係できるでしょう。連係の約束事(プロトコル)を必要に応じてうまく調整し、接続に問題が起きても、話し合いながらうまく対処できるでしょう。チームが緊密に協力するもう一つの方法としてモデルの共有があります。つまり、モデルの一部を共通部分として抽出し、進化させていきます。たとえば、区切られた文脈どうしを接続する部分を「契約」として抽出し、共有のソースコードリポジトリで管理します。

 利用者と供給者の関係に分類される連係方法では、二つのチームの力関係が、上流(サービスを提供する側)か下流(サービスを利用する側)のどちらかにかたよります。上流の区切られた文脈のモデルが、下流の区切られた文脈にとって、都合の悪い場合を考えてみましょう。この状況で上流と下流をつなぐためには、区切られた文脈のモデルを変換する、手の込んだ解決方法が必要です。 ...

Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.