单个有界上下文的结构

时间:2012-10-31 13:38:53

标签: domain-driven-design

有界上下文是否涵盖所有应用程序层(域,应用程序,演示文稿和基础架构)或域模型?例如,我应该使用以下结构:

<bc 1>
 |_ domain
 |_ application
 |_ presentation
 |_ infrastructure
<bc 2>
 |_ domain
 |_ application
 |_ presentation
 |_ infrastructure

或以下:

domain
 |_ <bc 1>
 |_ <bc 2>
application
presentation
infrastructure

3 个答案:

答案 0 :(得分:11)

两者都是有效的方法。我倾向于支持第一种选择,因为它允许更好的模块化和高水平BC的清晰边界。第二种选择是“标准”的做法,它有利于让我们说更技术性的分层,而第一种选择字面上倾向于更多的域驱动分层。

选择您感觉更舒服的那个。

答案 1 :(得分:1)

按你认为合适的方式做。每个有界上下文将具有不同的域,并且肯定是不同的应用程序层,但我们可以想象一个公共基础结构层,即表示层。这实际上取决于您的架构选择,以及您正在尝试构建的应用程序。

如果您想要更精确的答案,请在问题中添加一些材料,以便我们能够了解您的背景和问题。

答案 2 :(得分:0)

我认为这不是关于DDD的问题,而是关于架构的问题。有界上下文之间的哪种耦合对您来说是可接受/可取的。

如果你所有有界的背景都会:

  • 用一种编程语言开发
  • 访问相同的数据库引擎
  • 由一个相对较小的团队(最多约20人)开发

那么你可能应该采用第二种方法 - 每个有界上下文包含自己的域和应用层,所有有界上下文共享相同的基础架构和应用层。

在其他情况下,您应该考虑microservces / SOA架构。