转摘:https://www.jdon.com/52189

它也称为战略建模,它是DDD的支柱,其主要目标是与整个项目团队(领域专家和技术团队)一起定义有界上下文,统一的无所不在语言和上下文映射。

要清楚地了解战略项目是什么,您需要掌握我所谈到的每个概念。

有界上下文/界定上下文

有界上下文是DDD最重要的概念之一,我们可以说这是应用领域模型表达的概念上的限制。当您尝试为大型领域建模时,您将遇到很大的困难,因为不同的人群将使用稍微不同的术语和句子来表达这些领域知识和概念,使用有界上下文,可以让人们明白:在当前上下文之外使用相同的词汇表却可能意味着不同的东西。

我们可以说,有界上下文主要是语言划界,正如[ Vaughn Vernon ]在他的书中所说的那样。重要的是要理解每个有界上下文都有自己的无所不在语言。

随着模型的发展,您将感觉需要在有界上下文之间创建关系,为此我们将使用上下文映射。

无所不在的语言

这种通用语言是一种内建模在有限背景(有界上下文)下,如该业务领域的术语和概念被识别,那就应该没有任何含糊。为了使您能够开发出高效的无所不在的语言,您需要了解业务。

无所不在的语言的一大优势是将领域专家,技术团队和参与项目的其他人聚集在一起。无所不在的语言绝不应该是领域专家强加的一系列术语和技术术语,相反,无所不在语言是在整个团队的协议下发展起来的。这种无所不在的、通用的语言必须在团队成员之间的任何时候都可以表达,以及可以用软件模型来表示。

上下文映射

上下文映射有助于理解整个项目,能够显示不同的有界上下文之间的关系。理解有界上下文之间的关系非常重要,这样您就可以正确地构建域模型。

有几种方法可以关联有界上下文:

  1. 共享内核:两个或多个团队之间的共享上下文,可减少代码重复,但是,任何更改都必须在团队之间进行组合和通知。
  2. 客户/供应商:它是客户端(下游)和服务器(上游)之间的关系,团队处于持续集成状态。
  3. 循规蹈矩Conformist:这是涉及上游和下游团队的情景,但在此模型中,上游团队没有动力满足下游团队的需求。
  4. 伙伴:这是团队依赖并需要建立合作关系的场景,以便他们能够满足两个系统的开发需求。
  5. 反腐败层:在这种情况下,客户端(下游)创建与上游上下文通信的中间层,以满足其自己的域模型。
  6. 还有其他集成模型,如开放主机服务Published Language,发布语言,分离方式Separate Ways。