Developer's Bookshelf

境界づけられたコンテキスト

参考文献

From エリック・エヴァンスのドメイン駆動設計
境界づけられたコンテキストは、特定のモデルが適用できる範囲を制限する。そうすることで、チームメンバは、何が一貫性を持つべきで、それを他のコンテキストとどう関係づけるかということについて、明確な理解を共有できるようになる。そのコンテキスト内では、モデルを論理的に統一された状態に保つこと。ただし、その境界の外に対して適用できるかどうかは気にする必要がない。他のコンテキストでは他のモデルが適用されるが、そのモデルとは用語法や概念とルール、ユビキタス言語の方言が異なっている。

コンテキストを定めることで、その中でモデル一貫性を保つ必要があるが、コンテキストの外では一貫性を気にする必要はなくなる。

From エリック・エヴァンスのドメイン駆動設計
コラム――境界づけられたコンテキストはモジュールではない この問題は混同されることもあるが、動機が異なる別々のパターンなのだ。確かに、2 つのオブジェクトの集合が別々のモデルを構成していると認識される場合、そうしたオブジェクトはほとんど常に別個のモジュールに置かれることになる。そうすることで、別々の名前空間(異なるコンテキストには不可欠)と何らかの境界が与えられる。 しかし、モジュールは1 つのモデルの中で複数の要素を構成するものでもあり、別のコンテキストに対して、必ずしも意図を伝えるものではない。境界づけられたコンテキストの中でモジュールが個別の名前空間を作成することにより、実は、偶発的に発生するモデルの断片化が見つけにくくなっているのだ。

ただしこの先にある「コンテキストマップ」のように、境界を作るだけでなく、そこの間の整合性を保つ必要がある。