首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DDD:将域拆分为不同程序集中的子域

DDD:将域拆分为不同程序集中的子域
EN

Stack Overflow用户
提问于 2013-12-12 12:04:49
回答 2查看 1.1K关注 0票数 1

我有一个域,包括两个子域。

每个子域都包含对另一个域的一些依赖项。

我想把每个子域放到一个单独的程序集中(我想把它分成1st:vertical 2nd: horizontal modules=>、easy reusability)。

问题是:

如何跨不同的sub domains (每个依赖项都放在一个单独的程序集中)管理依赖关系

我在正确的道路上吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-14 03:17:09

域的一个重要属性是您的域不应该依赖任何其他内容。如果您说您的域依赖于其他域,那么可能需要更多的分析,并且当前标识的边界是错误的。

域只使用它自己的术语,用它自己的语言!不是在其他领域(因为它不关心它们),也不是在外部契约/消息方面(因为它们可能会改变),等等。

这里可能缺少的是一个有限的上下文。在开始细化域之前,当系统中没有确定有界的上下文时,就会出现类似的问题。

我建议你从头开始:

  1. 识别系统中的有界上下文。从定义上讲,它们是相互独立的。
  2. 每个有界的上下文都有自己的域(如果它是以这种方式实现的,这是不必要的)。这个领域不知道它自己的“泡沫”之外的任何东西,并且肯定不知道其他领域的存在或缺失。
  3. 当不同的BCs需要相互沟通时,确定合同。BCs (不提及它们的域)不应该相互依赖或相互引用,也不应该使用其他类型。相反,他们依赖于合同。
  4. 合同通常是一种信息(然而,有些人会做其他事情,这会时不时地伤害他们)
  5. 反腐败层可以在BCs边界上实现。这样做完全是为了保护BC (及其领域)不受外界的影响。ACL的工作是将事物从外部(外部事件、消息、调用等)转换为域可以理解的内容。
  6. 再说一次,域只用自己的术语,用自己的语言说话!不是在其他领域(因为它不关心它们),也不是在外部契约/消息方面(因为它们可能会改变),等等。

希望能帮上忙。

票数 6
EN

Stack Overflow用户

发布于 2013-12-13 16:01:45

您的子域是有界上下文(BC)吗?

如果没有真正的域,它将很难帮助您,但是不同的BC应该在不同的程序集中进行物理分离。一种情况我们不会引用另一种..。BC是独立的组件。上下文之间的通信应该是理想的异步通信。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20543066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档