有界上下文的大小

Size of a bounded context

我已经开始学习 DDD 的原理,目前正在尝试掌握限界上下文的概念。特别是,您如何决定它必须有多大(或多小)?是的,我知道,越小越好(根据 Vaughn Vernon 的说法)。

假设我要为博客建模。然后我可以说涉及 3 个有界上下文:1) 头版(以最新文章为特色,不显示评论)2) 讨论(包含评论的单篇文章)3) 文章编辑器(我撰写文章的地方)。

然而,这感觉不对(无处不在的语言对所有人来说都是一样的),似乎我是从前端的角度出发,并且仍在考虑视图模型什么的。

谁能给我指出正确的方向?

博客不是使用多个限界上下文的好例子。这并不是真正的 "big enough" 软件示例来保证他们的定义。 DDD 和 BC 的真正目标是 big/complex 进取的软件系统。

就像你说的,聚合在你的 3 个例子中总是具有相同的含义。

我在之前的回答中给出了这个限界上下文示例,我希望它能解释 BC 以及何时使用它们:Bounded Contexts and Aggregate Roots

试着从不同的角度看待你的整个领域,作为文章的编辑,你可能会使用像创建文章草稿、发表文章这样的句子,作为一篇文章 reader 你会例如阅读文章并对其发表评论。在构建领域语言的同时,您将识别实体及其行为,其中一些只会出现在一个视角中,有些会同时出现在两个视角中,但您将通过它们的行为来区分它们。您的领域语言向您展示了每个视角的边界,您将其实现为有界上下文。

到目前为止,我阅读的最好的子域示例如下。

只看实际公司!参与业务流程的每个部门都可以有自己的子域。在理想情况下,每个子域在您的实现中都有自己的限界上下文。你应该问问自己,公司是否需要一个新的部门来做这件事?真的有那么大吗?

BC 必须足够大才能描述公司的一个部门。一个典型的例子是网上商店,您有一个购物核心域和发票、交付和存储子域。拥有多租户和多个方面——如前一个答案所述——是不够的。一个有作者和几个读者的博客不需要多个部门,所以你可以用一个限界上下文来解决这个问题。如果您认为在您的限界上下文中有中等大小的结构,您可以在您的限界上下文中有多个模块。