DDD:普遍存在的语言的范围是什么?它是域还是有界上下文?

时间:2016-03-31 09:31:11

标签: domain-driven-design

域驱动设计(DDD)中的一个关键概念是无处不在的语言。

这种普遍存在的语言的典型范围(一致性边界)是什么?它是由有界上下文(例如某个域中的系统/组件)还是域本身限定的?在较大的企业中,不同的系统(即有界的上下文)可能实现相同的域。

我的假设是它绑定到有界上下文,因为在多个有界上下文中无法保证一致性(即使它们属于同一个域)但我不确定。

4 个答案:

答案 0 :(得分:6)

有界语境是无所不在的语言所在的地方。

Vaughn Vernon将DDD定义为:

  

在有限的语境中开发普适语言

此问题已被询问并回答before

更新:我在DDD挪威聚会上发表了一篇关于UL和背景的重要性的演讲。可以找到幻灯片here

答案 1 :(得分:4)

无处不在的语言是在有限的上下文中定义的。当你看到包含相同术语的不同BC时,这就变得很明显了。在线商店中 book 的概念与创作系统中的 book 完全不同。

来自Voodn Vernon的实施DDD

  

有界上下文是明确的和语言的

     

有界上下文是存在域模型的显式边界。在边界内,无所不在语言的所有术语和短语都具有特定的含义,模型反映了语言的准确性。

答案 2 :(得分:0)

BC的

+1。这是Scott Millett和Nick Tune的 Patterns, Principles, and Practices of Domain-Driven Design引文:

  

在第4章“模型驱动的设计”中,向您介绍了泛在语言(UL)的概念以及在上下文中定义的没有语言歧义的模型的重要性。上下文是指模型的特定职责,它有助于分解和组织问题空间。有界上下文通过将模型封装在责任范围内,进一步带动了上下文模型的构想。与更抽象的上下文相反,此边界是一种具体的技术实现。有界上下文以不降低模型纯度的方式强制进行通信。

     

有界上下文首先是语言边界。 [...]

     

在明确界定的上下文中说一种无所不在的语言。

答案 3 :(得分:0)

Eric Evans put up a slide在Explore DDD 2018(Denver)上说:

  

DDD是一组指导原则:

     
      
  • 专注于核心领域
  •   
  • 在领域从业者和软件从业者的创造性协作中探索模型
  •   
  • 在明确界定的上下文中说一种普遍存在的语言
  •   

这不仅是DDD创始人的一个非常简洁的总结,而且第三条原则清楚地解释了“无处不在的语言”与“有限的上下文”之间的联系。请注意,他说的是“一种”无处不在的语言,而不是“ the”。可以有多个,但每个都在不同的有界上下文中。