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

限界上下文(Bounded Context)

限界上下文是模型一致性的边界:边界内术语与模型含义唯一,边界外允许同名不同义;它通常与服务/团队的边界对齐。

限界上下文是什么

限界上下文是模型一致性的边界:边界内每个术语只有一种含义,模型不需要额外限定词就能表达清楚;边界外允许出现同名但含义不同的概念。它由业务语义划分,通常与团队边界、服务边界和部署单元对齐,但并不等于子系统——子系统按技术或功能划分,限界上下文按模型语义划分。识别上下文是拆服务与划分模块的前置工作。

基本信息

核心判据同一术语在边界内含义一致,无需加限定词解释
与子系统区别子系统按技术或功能划分,限界上下文按模型语义划分
常见对齐常与微服务边界、代码模块边界、团队边界一致
识别手段事件风暴、术语冲突点分析、组织结构与变更频率观察
产出物上下文清单、上下文映射图、每个上下文的通用语言术语表

上下文映射关系

模式关系说明典型场景
合作关系两个上下文共同演进、协调发布联系紧密、目标一致的团队之间
客户-供应商下游依赖上游,需求方向单向中台与业务线之间
防腐层下游加转换层隔离上游模型集成遗留系统或外部供应商
共享内核共享小范围且稳定的模型公共概念与基础类型
遵奉者下游完全沿用上游模型,不做转换上游强势且模型通用时
各行其道不做集成,各自独立演进集成收益低于成本时

典型使用场景

  • 拆分服务前:先划清语义边界,避免按技术层切分
  • 术语冲突治理:同一词在不同团队含义不同,说明存在边界或需要裁决
  • 团队划分依据:让团队边界与语义边界尽量重合,减少协调成本
  • 集成方案设计:为上下游关系选择映射模式并落地防腐层
  • 遗留系统改造:识别现有模块实际承载的上下文,找到混装区域
  • 需求评审:发现同一需求跨多个上下文时,先确认哪一方承担规则
上下文映射不只有技术含义,也反映组织关系:供应商模式往往对应强势上游团队,合作关系则要求双方发布节奏同步。
边界划分过细会产生大量跨上下文调用与集成成本,划得过粗则模型含义被稀释,需要结合团队结构与变更频率综合权衡。

易错点

  • 把限界上下文当成模块或微服务清单,按技术层划分,语义冲突依旧存在
  • 边界划得过细,一个用例要跨四五个上下文,集成与联调成本反超收益
  • 不做上下文映射,上下游直接互相引用模型,任一方改字段就引发连锁故障
  • 术语表只记录一种叫法,别名与禁用叫法缺失,沟通中持续产生歧义
  • 上下文边界与团队边界长期错位,同一个上下文由多个团队修改且无人负责

数据来源与参考

  • Eric Evans《Domain-Driven Design》
  • Vaughn Vernon《Implementing Domain-Driven Design》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌