私は DDD と境界付けられたコンテキストについて読んできましたが、考えが間違っていると思います。最初は、サブドメインと境界付けられたコンテキストのアイデアが好きで、次のように理解していました。開発するソフトウェアがありますが、一度に攻撃するのは多すぎるため、論理的な断片に分割して、一度に開発します。私たちが解決するもう 1 つの問題は、ユビキタス言語のあいまいさです。
これにより、境界付けられたコンテキストを基本的には、アプリケーションの特定の部分に関連するコードをグループ化してバインドする単なるフォルダーと考えるようになりました。このコードは、次のようなものから構成されていると信じていました
- リポジトリとサービスの抽象化を含む、その境界付けられたコンテキストのドメイン モデル
- その境界付けられたコンテキストのインフラストラクチャ層、リポジトリの実装など
もちろん、ドメイン モデルとインフラストラクチャは、境界のあるコンテキスト内で適切に分離されています。
しかし、さらに読むと、それぞれの境界付けられたコンテキストは、それ自体が完全なアプリケーションであるように見えます。たとえば、境界付けられたコンテキストごとに独自のアプリケーション層があるように見えることがあります。
これは私を混乱させました。なぜなら、大量のアプリケーションの開発を終わらせたくない場合があるからです。アプリケーションの境界付けられたコンテキスト区分は、1 つのアプリを構築することになっていました。統合されるアプリは多くありません。
@MikeSWがOPによって提示された両方のアプローチが有効であると言っているこの質問のようです。私が求めているのは、3番目の構造についてです:
<bc 1>
|_ domain
|_ infrastructure
<bc 2>
|_ domain
|_ infrastructure
|_ application
|_ presentation
少なくとも、私が見たすべてのアプリケーションでは、これははるかに理にかなっていると思います。いくつかのプレゼンテーションを備えた複数のアプリではなく、1 つのアプリが必要ですが、ドメインを壊して、「ユビキタス言語の境界」などの利点を得ることができるようにしたいと考えています。
では、境界付けられたコンテキストは完全なアプリケーションですか? または、私が理解し、より便利だと感じたように、境界付けられたコンテキストを使用できますか? 私のアプローチに問題はありますか?