Domain driven design 具有多个有界上下文和项目结构的子域

Domain driven design 具有多个有界上下文和项目结构的子域,domain-driven-design,Domain Driven Design,我已经开始阅读蓝皮书的几章,并阅读了红皮书(实现领域驱动设计)的前三章。我有两个问题: (1) 子域可以有多个有界上下文吗?我特别关注的是实施领域驱动设计书中的示例,其中有一个预测子领域与库存耦合/重叠。(如果你没有读过这本书,我表示歉意,但我的想法是,这两个有界上下文之间有很强的重叠) (2) 我如何组织我的项目解决方案结构(我使用的是.net),是否有我可以查看的真实项目的示例?我应该创建文件夹,即子域、核心域、通用域,然后指定其下的模块吗?我正在努力研究如何最好地定义我的结构,以便它显示洋

我已经开始阅读蓝皮书的几章,并阅读了红皮书(实现领域驱动设计)的前三章。我有两个问题:

(1) 子域可以有多个有界上下文吗?我特别关注的是实施领域驱动设计书中的示例,其中有一个预测子领域与库存耦合/重叠。(如果你没有读过这本书,我表示歉意,但我的想法是,这两个有界上下文之间有很强的重叠)

(2) 我如何组织我的项目解决方案结构(我使用的是.net),是否有我可以查看的真实项目的示例?我应该创建文件夹,即子域、核心域、通用域,然后指定其下的模块吗?我正在努力研究如何最好地定义我的结构,以便它显示洋葱/六角形层已就位

提前谢谢

  • 对。域由多个子域(如果足够复杂)组成,每个子域实际上是一组有界上下文。从应用程序的角度来看,域本身可以被视为一个有界上下文(BC)。 业务连续性并不意味着它包含唯一的模型,而是业务概念的特定表示。因此,您可以在多个BC中定义一本书,但在每个BC中,定义略有不同,从完整的详细信息到仅一个id。因此,例如,库存中的书不同于销售中的书。BC如何理解一个概念很重要。 结果模型仅在该BC中有效,尽管它可以与另一BC中的模型具有相同的名称。但这就是名称空间的用途

  • 这并没有秘诀,每个人都按照自己认为合适的方式来组织他们的项目。但大多数情况下,您至少会有一个域项目和UI、持久性、基础设施项目。我认为最好的结构取决于应用程序和开发者的想法,所以我做事的方式可能不是你的最佳方式。简而言之,根据应用程序对您的意义来构建应用程序