【问题标题】:Can a system have several core domains?一个系统可以有多个核心域吗?
【发布时间】:2021-06-14 14:49:51
【问题描述】:

我试图弄清楚使用 DDD 设计的系统是否可以具有多个核心域。我找到了这个帖子(Can we have more than one core domain, as the result of Distillation process),但我无法评论它。

当我在谷歌上搜索时,我并没有真正找到答案,或者答案指向应该只有一个核心域,这就是我读过的“域驱动设计蒸馏”一书中的描述.

但我觉得这没有道理?假设您正在销售一个将簿记和发票作为两大功能的系统。然后我觉得这两个都是核心领域。它们都是该计划的核心部分,并且彼此不同,因此可以(或不应该)将它们归为一个领域。

或者,如果您销售的是“生产力套件”,那么您的核心域可能包括“问题管理系统域”“日历域”“聊天应用程序域”“电子邮件系统域”,因为这些都是您系统的重要组成部分出售(假设您是 google 并且正在对 G-suite 进行建模)

我是否可能只是误解了,拥有多个核心域并不奇怪?

谢谢!

【问题讨论】:

    标签: domain-driven-design


    【解决方案1】:

    按照我的理解,核心领域是你要先完成的领域,所以从这个意义上说,核心领域真的只能是一个。

    这个术语似乎有点混乱,因为它是在大型组织中的团队采用 DDD 的环境中开发的,这些团队负责“交付一个系统来执行此操作”(例如,在 GSuite 示例中,“实施电子表格” ,在这种情况下,传播对单元格值的更改很可能是该问题的核心领域)。

    在一个足够大的系统中,很可能存在提供相同价值的域(例如,没有真正的方法来确定哪个更有价值,因为没有它们中的任何一个,系统都无法完全运行),我猜在这种情况下最一致的说法可能是该系统中没有核心域(但有一些合作的子域网络)。

    【讨论】:

    • 同意这个。
    【解决方案2】:

    在一个“系统”中,您可以拥有多个域。

    在一个域中,通常你只有一个核心域。它是您的软件中最重要和最有价值的部分。

    如果你删除这部分软件,你的系统还“活着”吗?

    • 不,所以这部分是核心域。
    • 是的,所以这部分可能是支持域

    在您的示例中,具有簿记和发票功能的系统,我不能完全确定(这取决于业务)它不是两个域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-27
      • 2010-11-11
      • 1970-01-01
      • 2015-02-09
      • 2013-04-15
      • 1970-01-01
      • 2010-10-20
      • 2016-06-17
      相关资源
      最近更新 更多