【问题标题】:DDD: What is the scope of the ubiquitous language? Is it domain or bounded context?DDD:无处不在的语言的范围是什么?它是域还是有界上下文?
【发布时间】:2016-07-19 16:10:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: domain-driven-design


    【解决方案1】:

    限界上下文是无处不在的语言所在。

    Vaughn Vernon 将 DDD 定义为:

    在限界上下文中开发无处不在的语言

    这个问题已被问及回答before

    更新:我在 DDD 挪威聚会上发表了演讲,内容涉及 UL 和上下文的重要性。幻灯片可以在here找到。

    【讨论】:

    • 感谢 Alexey - 您的回答非常有帮助,正是我想要的!
    • “上下文为王”
    • @WalterMacambira :) 我需要在我的演示文稿中添加一个链接到答案
    【解决方案2】:

    普遍存在的语言是在有界上下文中定义的。当您查看包含相同术语的不同 BC 时,这一点变得显而易见。在线商店中的book 概念与创作系统中的book 完全不同。

    来自 Vaughn Vernon 的 实施 DDD

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

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

    【讨论】:

      【解决方案3】:

      +1 表示 BC。这是 Scott Millett 和 Nick Tune 对 Patterns, Principles, and Practices of Domain-Driven Design 的引用:

      在第 4 章“模型驱动设计”中,您将了解通用语言 (UL) 的概念以及在没有语言歧义的上下文中定义的模型的重要性。上下文是指模型的具体职责,有助于分解和组织问题空间。有界上下文通过将模型封装在责任边界内,进一步将模型的概念融入上下文中。这个边界是一个具体的技术实现,而不是更抽象的上下文。有界上下文以不降低模型纯度的方式强制通信。

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

      在明确界定的语境中说一种普遍存在的语言。

      【讨论】:

        【解决方案4】:

        在 Explore DDD 2018(丹佛)上,Eric Evans put up a slide 说:

        DDD 是一套指导原则:

        • 聚焦核心领域
        • 在领域从业者和软件从业者的创造性合作中探索模型
        • 在明确界定的语境中说一种普遍存在的语言

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-07
          • 2012-03-27
          • 2019-03-01
          • 1970-01-01
          相关资源
          最近更新 更多