DDD / Combining Large-Scale Structures and BOUNDED CONTEXTS


大規模な構造とBOUNDED CONTEXTSを結合する (ページ)

要約

戦略的デザインの3つの基本的な原則(コンテキスト(context)、蒸留(distillation)、大規模な構造(large-scale structure))はそれぞれ代用可能ではなく互いを補完しあうものである。

RESPONSIBILITY LAYERSが1つのBOUNDED CONTEXTに収まる場合、モデル要素やサブシステムのインターフェースの名前はCONTEXT内に存在する。

図17.2: 一つのBOUNDED CONTEXT内にモデルを構築する

局所的な構造は非常に複雑で統一されたモデルにおいて便利である。

しかし多くのプロジェクトでは統合システムの中で何のパーツが動作し、互いにどう関係しあっているかが分からない。

図17.3: 異なるBOUNDED CONTEXTSのコンポーネントの関係でつながれた構造

レガシーシステムにてRESPONSIBILITY LAYERSを導入したいとした場合、レガシーが構造内にあるという現実を受け入れ特徴づけることで、スコープや役割の重要側面を簡潔に定義できるかもしれない。

図17.4: いくつかのコンポーネントがレイヤ間をわたった構造

もしレガシーサブシステムの機能がFACADEを通じてアクセスしているならば、1つのレイヤー内にあうようFACADEによって提供される各サービスを設計できるかもしれない。

CONTEXT MAP全体にわたり上手く築き上げられた大規模構造のプロジェクトのチームは、同じ関連するLAYERSによってモデルを整理するためにこれらのCONTEXT内で選択することができた。

図17.5: 1つのCONTEXT内かつCONTEXT MAP全体で適用される同じ構造

あまりに迷走してしまうと大規模な構造の価値を失ってしまう。

担当者のつぶやき

みんなの突っ込み


まとめ (議事録)