知识卡片
打破原有聚合边界,按新限界上下文重新分组聚合
内容
以客户中台为例说明重构的具体机制:互联网电商客户域有个人客户、积分两个聚合;传统核心客户域有个人客户(含个人客户、视图、评级、归并四个聚合的组合)和团体客户两个领域模型。把两边拆解到聚合粒度后,可以找出个人客户、积分、评级、客户归并、客户视图五个和”个人客户”相关的聚合,分散在两条渠道各自的领域模型中。重构时打破这些聚合原有的上下文边界,在客户基准域内重新组合:个人客户、归并、客户视图三个聚合业务上属于”客户基本信息管理”这个限界上下文,重新组合成新的”个人客户”领域模型;评级和积分两个聚合业务上属于”个人客户评级积分管理”这个限界上下文,组合成新的”评级积分”领域模型;而团体客户只存在于传统核心中,直接沿用即可,未来如果互联网电商也需要团体客户功能,再基于现有团体客户模型演进扩展。这个案例说明中台重构不是简单地把两份领域模型”拼接”或者”取并集”,而是要先把双方拆解到聚合这个最小可移动单元,再按聚合实际的业务语义重新划分限界上下文分组——原来的聚合归属、原来的领域模型边界,在重构阶段都不是神圣不可动的,服务于”最终形成高内聚低耦合的中台模型”这个目标才是判断依据。
参考来源
- 位置:第13章《如何用DDD重构中台业务模型》"13.3.2 自底向上的策略"(源文件:_epub-src/OEBPS/Text/chapter4-2-3-2.xhtml)
- 结论依据:原文说明"我们将互联网电商和传统核心的客户领域模型按照聚合分解后,就可以找到五个与个人客户领域相关的聚合……在客户领域模型重构时,我们需要打破它们原有的上下文边界和领域模型,在客户基准域内进行功能沉淀和聚合重组,重新划分这些聚合的限界上下文边界……个人客户、归并和客户视图三个聚合属于客户基本信息管理限界上下文……评级和积分两个聚合则属于个人客户评级积分管理限界上下文",直接支撑本卡片结论。
- 原始内容:在客户领域模型重构时,我们需要打破它们原有的上下文边界和领域模型,在客户基准域内进行功能沉淀和聚合重组,重新划分这些聚合的限界上下文边界,重构客户领域模型。