知识卡片

主领域模型的确定与领域对象归并去重

普通读书笔记卡

内容

中台业务建模时经常遇到一个现实问题:本应属于同一个聚合的领域对象,却因为历史上按不同应用的业务领域分头建设,被分散到了多个不同中台各自的领域模型里——比如”用户”这个对象,在移动互联业务领域和传统核心业务领域可能各自都建了一份,如果不处理,会得到多个不完整、彼此重叠的”半成品”用户模型,而不是一个高内聚低耦合的标准用户领域模型。书中给出的处理方法分三步:先从这些分散的领域模型中,选出领域逻辑相对完整的一个作为”主领域模型”;然后以主领域模型为基准,逐一扫描其他中台的领域模型,根据名称或业务动作的相似性等线索,找出重复的或者本该属于同一限界上下文却游离在外的领域对象;最后把这些重复或游离的对象合并进主领域模型,据此重构出最终版本,这个过程需要对所有相关领域模型重复执行,直到全部完成比对和归并。这个方法给出一条通用思路:面对”同一个概念在多处被重复、不完整地建模”这类历史遗留问题,与其试图凭空设计一个全新的”完美模型”,不如先挑一个已有的、相对完整的版本作为锚点,再有序地把散落各处的碎片信息吸收进来重构,这比从零开始的成功率更高,也更容易在团队间达成共识。

参考来源

- 位置:第4章《DDD、中台和微服务的关系》"4.3 如何完成中台业务建模"(源文件:_epub-src/OEBPS/Text/chapter2-4-3.xhtml) - 结论依据:原文说明"首先我们需要从这些领域模型中,选取领域逻辑相对完整的领域模型作为主领域模型。依托这个主领域模型,充分吸收分散在其他领域模型的领域对象和领域逻辑……以主领域模型为基准,逐一扫描其他中台领域模型,根据名称或业务动作的相似性等条件,检查是否存在重复的领域模型或领域对象……将这些重复或游离的领域对象,合并到主领域模型,提炼并重构主领域模型",直接支撑本卡片结论。 - 原始内容:比如在移动互联业务领域和传统核心业务领域,往往同时会有用户这个领域对象,因此在领域建模时,用户就会被分散到不同的领域模型中。这样是不利于构建"高内聚,低耦合"的用户领域模型的……首先我们需要从这些领域模型中,选取领域逻辑相对完整的领域模型作为主领域模型。