首页/开发/系统分析与架构设计速查/上下文映射(Context Map)
需求分析与建模61 条

上下文映射(Context Map)

描述限界上下文之间的关系模式:合作关系、共享内核、客户-供应商、遵奉者、防腐层、开放主机服务、发布语言、各行其道等,用于管理跨边界依赖。

上下文映射是什么

上下文映射是 DDD 中描述限界上下文之间协作关系的工具,用若干种模式标注上下游依赖的性质,常见有合作关系、共享内核、客户-供应商、遵奉者、防腐层、开放主机服务、发布语言、各行其道。它的作用是让跨团队接口的演进有明确约定,而不是依赖口头默契。

基本信息

出处Eric Evans《领域驱动设计》
组成限界上下文 + 关系模式 + 上下游方向
常用粒度团队级或子系统级
产出一张上下文图加关系说明表
关键动作让每处跨边界调用都能对应到某个模式

关系模式

模式含义风险提示
合作关系两个上下文共同成败,接口协同演进需同步发布,任一方的变更都要对方配合
共享内核共享一小块模型与代码,改动需双方同意共享范围会持续扩大,最终退化成共享数据库
客户-供应商上游按下游需求排期提供能力下游议价能力弱时容易被排期阻塞
遵奉者下游直接跟随上游既有模型上游模型不合业务时技术债会持续累积
防腐层下游加一层转换隔离上游模型增加代码量与维护成本,需评估是否值得
开放主机服务 + 发布语言上游提供稳定的公开接口与契约需要版本治理与契约文档维护
各行其道两边不集成,各自实现重复实现成本可能高于集成成本

典型使用场景

  • 微服务拆分前:先画出各业务域的上下游关系,再决定哪些边界需要防腐层
  • 遗留系统对接:外部模型强行注入时用防腐层隔离,而不是全盘接受
  • 团队边界治理:跨团队接口由谁定版本、谁负责兼容写进协作约定
  • 重构排序:优先处理耦合最强、变更最频繁的跨边界链路
  • 平台化:把内部能力包装成开放主机服务与发布语言对外提供
上下文图不必画全,但每一处跨边界调用都应能对应到某个关系模式;找不到模式的调用,通常是耦合已经失控的信号。

易错点

  • 上游模型直接泄漏到下游领域层,两边字段改一个牵动一片代码
  • 同一上下文同时对多个上游保持强耦合,任何一方变更都无法独立发布
  • 把共享内核当默认选项,范围越扩越大,最后退化成事实上的共享数据库
  • 只画静态关系不约定演进规则,接口一变更就靠临时会议协调

数据来源与参考

  • Eric Evans《Domain-Driven Design》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌