打破有限上下文的应用程序

时间:2014-08-06 06:51:34

标签: domain-driven-design

您如何计划并将应用程序划分为有限的上下文?一方面,将所有这些解耦都非常方便,但另一方面,过多的粒度会导致非常繁琐的开发。这条细线在哪里?在设计有界上下文和上下文映射时,您考虑了哪些因素?他们是技术性的,战略性的吗?

在很多例子中,您将电子商务应用视为一组有界的背景:目录,购物,发票,交付等。

来自哪里?

3 个答案:

答案 0 :(得分:2)

技术,绝对不是......

你听说过Event Storming吗?我认为这是找到自己边界的好方法......

有限的上下文是关于语言,不是技术或架构思考,而是关于您的域和域专家使用的词的更多信息:Greg Young explain-it well in the beginning of this talk

当你为你的领域模型建模时,你必须定义你的界限(对于电子商务,产品不同的概念在不同的上下文中具有相同的属性:目录,购物......关于客户的同样的事情......和你不必为每个上下文使用相同的实体,所以每个上下文都有其特定的Ubiguitous语言),迭代地思考这个活动(有时出现有界上下文并且不是首先清晰可见)

答案 1 :(得分:1)

只要您使用相同的单词来定义不同的概念,您就会遇到两个有界的上下文。

假设有一个处理电影租赁的应用程序 如果您的团队(业务/开发人员)谈论“用户”以身份和访问权限来定义用户,而“用户”也就 Renters 而言,那么您会有两个有限的背景:

  1. IdentityAndAccessContext(管理身份验证,角色等等。技术)
  2. MovieRentalContext(不知道用户,但是Renters)
  3. 有界语境是所选择的普遍存在的语言的反映。

答案 2 :(得分:1)

对于从头开始建模域,我认为从一个有界上下文和一个模块开始是一个很好的决定。在一个模块中,概念开始发生冲突或看起来很奇怪,是时候将一些概念分成不同的模块(或者在模块之间重新组织)。 将模块分成不同的有界上下文的方法相同。