DDD 策略设计:共享内核模式与发布语言模式

问题描述

领域驱动设计 (DDD) 中选择的共享内核和已发布语言战略模式之间的主要区别是什么?

解决方法

shared-kernelpublished-language 都是上下文映射模式集合的一部分。上下文映射是一种非常有用且功能强大的工具,它允许人们查看哪种依赖项将系统链接在一起。他们还可以突出团队关系。
shared-kernel 表示两个系统通过共享一个共享工件(模型、DLL、Jar、DB 等)强耦合。如果这两个系统由 2 个不同的团队处理,则意味着每当 A 团队更改某事时,它都会影响 B 团队,反之亦然。
published-language 是一个有据可查的模型,每个人都可以理解和翻译。想想 iCal、VCard 或类似的东西。
Michael Plöd 在记录上下文映射模式方面做得很好,您可以看看 here

,

它们是完全不同的东西。

共享内核基本上是两个有界上下文共享的模型。

发布语言通常与开放主机服务模式一起使用,是一种众所周知的语言,用于定义所提供的服务。例如,JSON 或 XML。