15

我们这里有一个相当大的应用程序,我考虑对其进行一些重构以遵循 DDD 人员的指导。

目前,它的第一个问题是有界上下文和上下文映射。也许我只是不了解它,但在我看来,除法是不可能的。例如,我们到处都有用户对象,它是完全相同的用户对象:显示名称、ID 和角色。还有另一个例子:我们有 CatalogItem 对象来帮助我们对整个地方的其他实体进行分类。我们是否必须引入限界上下文依赖项?除了那个烦人的电子商务样本之外,这件事有什么指导吗?

4

1 回答 1

8

我发现,起初,有界上下文和聚合根似乎是 DDD 中最简单的概念。直到您真正开始实施具有现实世界问题的 DDD 应用程序。这里没有简单的答案。这完全取决于您的业务需求(可扩展性、可用性、延迟、一致性等)。“正确”的解决方案是平衡这些问题以最适合您的需求的解决方案。

根据您给出的示例,有几种选择:

  • 一个大的有界上下文
  • 具有重复数据的单独有界上下文(可能使用发布/订阅消息系统实现)
  • 将用户和目录项拉入它们自己的有界上下文中,并让其他有界上下文通过服务访问它们

要记住的一件事是查询需求通常与“写作”需求非常不同。它通常可以简化您的应用程序设计,使其具有纯粹用于查询的单独有界上下文。如果这听起来可能适用,请查看 CQRS。

于 2010-01-16T02:29:33.240 回答