域驱动设计(DDD)中的一个关键概念是无处不在的语言。
这种普遍存在的语言的典型范围(一致性边界)是什么?它是由有界上下文(例如某个域中的系统/组件)还是域本身限定的?在较大的企业中,不同的系统(即有界的上下文)可能实现相同的域。
我的假设是它绑定到有界上下文,因为在多个有界上下文中无法保证一致性(即使它们属于同一个域)但我不确定。
答案 0 :(得分:6)
有界语境是无所不在的语言所在的地方。
Vaughn Vernon将DDD定义为:
在有限的语境中开发普适语言
此问题已被询问并回答before
更新:我在DDD挪威聚会上发表了一篇关于UL和背景的重要性的演讲。可以找到幻灯片here。
答案 1 :(得分:4)
无处不在的语言是在有限的上下文中定义的。当你看到包含相同术语的不同BC时,这就变得很明显了。在线商店中 book 的概念与创作系统中的 book 完全不同。
来自Voodn Vernon的实施DDD :
有界上下文是明确的和语言的
有界上下文是存在域模型的显式边界。在边界内,无所不在语言的所有术语和短语都具有特定的含义,模型反映了语言的准确性。
答案 2 :(得分:0)
+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”。可以有多个,但每个都在不同的有界上下文中。