第2章 业务维度边界划分:限界上下文、业务能力对齐、子域划分、核心域/支撑域/通用域

业务维度的边界划分是组件拆分的起点。如果不能从业务领域正确识别限界上下文、对齐业务能力、划分子域、区分域类型,后续的技术实现将陷入“为拆分而拆分”的泥潭。本章聚焦如何从业务模型推导出清晰的组件边界。

2.1 核心概念与关系

DDD(领域驱动设计)中的四个核心概念构成了业务维度划分的层层递进关系:

  • 限界上下文(Bounded Context) — 业务逻辑的显式边界,内部维护统一语言和模型完整性。
  • 业务能力(Business Capability) — 组织/系统实现某一业务目标的能力集合,常与限界上下文形成“能力→上下文”映射。
  • 子域(Subdomain) — 业务领域的问题空间细分,每个子域对应一个或多个限界上下文。
  • 域类型 — 将子域分为核心域(竞争优势)、支撑域(必需但非核心)、通用域(标准化可采购)。
关键洞察: 限界上下文是组件拆分的“原子单元”,而子域划分帮助确定哪些组件应被优先投入复杂度和治理资源。

2.2 业务维度边界划分四步流程

步骤 活动 产出物 典型工具
1 事件风暴 / 业务全景梳理 领域事件流、聚合根草图 白板、Miro、EventStorming
2 限界上下文识别与命名 上下文映射图(Context Map) 上下文映射模式、团队拓扑
3 业务能力对齐与子域划分 能力→上下文矩阵、子域目录 能力模型、问题空间 vs 解空间
4 域类型标记与优先级排序 核心/支撑/通用域清单 战略优先级、TAM/SAM分析

2.3 限界上下文与业务能力对齐矩阵

以下示例展示一个电商平台的“订单管理”限界上下文如何与业务能力对齐:

限界上下文 业务能力 子域 域类型
订单上下文 创建订单、修改订单、查询订单、取消订单、订单履约 订单处理子域 核心域
支付上下文 发起支付、支付回调、退款、对账 支付结算子域 支撑域
库存上下文 库存预占、库存释放、库存盘点、补货策略 库存管理子域 支撑域
用户上下文 注册、登录、权限、收货地址管理 用户与认证子域 通用域
消息通知上下文 短信、邮件、站内信、推送 通知子域 通用域
实操建议:在业务能力对齐阶段,使用“业务能力热力图”标记每个能力的变更频率、业务关键度和技术复杂度,辅助后续组件拆分的粒度决策。

2.4 子域划分与域类型决策

子域划分不是简单的功能模块拆分,而是基于业务价值的战略化分层:

  • 核心域 — 公司拥有差异化竞争力的领域,组件应内聚、高自治、强内聚,避免过早抽象。
  • 支撑域 — 业务必需但非差异化,组件可适度耦合或依赖成熟框架,但需保留扩展点。
  • 通用域 — 市场已有成熟方案,优先引入 SaaS 或开源组件,内部仅做适配层,避免自研。
常见陷阱:将所有子域一视同仁投入相同治理力度,会导致核心域被稀释、通用域过度设计。必须根据域类型差异化制定组件边界规则。

2.5 业务维度边界划分流程图

业务维度边界划分决策流程 业务全景分析 识别限界上下文 业务能力对齐 子域划分 域类型标记 核心域 支撑域 通用域 说明:每个限界上下文最终归属唯一域类型,但一个子域可能包含多个限界上下文。核心域优先保障内聚性和自治能力。

2.6 选型权衡与风险点

决策点 推荐方案 风险
限界上下文粒度 按业务能力聚合到 1~3 个聚合根 过粗导致模块内耦合;过细导致分布式事务爆炸
跨上下文通信 优先采用异步事件/消息 强一致性场景下会引入最终一致性妥协
通用域策略 外购 SaaS+ 适配层封装 供应商锁定、数据合规风险
核心域复用 不允许跨上下文直接依赖 团队认知不一致导致核心模型腐化

2.7 落地步骤

  1. 第1步(1~2周):与业务方、产品、领域专家共同进行事件风暴,产出领域事件流和聚合初稿。
  2. 第2步(1周):基于聚合和业务能力,画出上下文映射图,标注合作者关系、共享内核、分离方式。
  3. 第3步(1周):将每个限界上下文标记域类型,并决定各域的治理策略、技术选型(如核心域用CQRS/ES,通用域用REST)。
  4. 第4步(持续):在迭代中通过“领域知识侵蚀检测”定期review模型是否偏离限界上下文边界。

2.8 验收标准

  • 完整性:每个业务能力都唯一对应一个限界上下文,不存在“没有归属”的能力。
  • 正交性:任意两个限界上下文之间的依赖关系清晰(合作者/遵奉者/分离方式),无循环依赖。
  • 域类型收敛:核心域数量不超过总子域数的30%,通用域占比不低于20%。
  • 变更影响:修改一个限界上下文内部模型时,不影响超过两个其他上下文。
实战检查清单
□ 是否已产出上下文映射图,并被团队达成共识?
□ 每个限界上下文是否有明确的“统一语言”文档?
□ 核心域是否已设立技术组和业务组双owner?
□ 通用域是否已评估市场成熟度并确定外购/自研比例?