子域分类 = 把业务资源投在核心
一、业务问题
工程团队最常犯的错:把所有子域当核心,平均用力。结果:
- 资源分散,没有重点
- 核心域得不到最好的人
- 通用域(行业标准)自己造轮子
- 战略不清晰
核心问题:如何识别业务的"核心"?如何把资源投在最值得的地方?
二、控制论视角
子域分类 = 控制系统的"资源分配"
Core Domain = 控制律最复杂的部分(重点设计)
Supporting Subdomain = 通用控制律(中等投入)
Generic Subdomain = 标准件(外购或最小投入)
类比:
- Core = 自研芯片
- Supporting = 自研主板
- Generic = 买现成的电源钱学森 Ch 21 大系统理论:
"大系统的特点是规模庞大、结构复杂、目标多样。"
软件对位:
- 大系统 = 复杂业务
- 目标多样 = 多个子域
- 资源按子域价值分配
三、核心概念
3.1 三类子域
Vernon 在 Ch 2 明确把子域分为 3 类:
| 类型 | 含义 | 投资策略 | 实例 |
|---|---|---|---|
| Core Domain | 业务的核心竞争力、独特价值 | 重点投资(最好团队) | 电商的"个性化推荐" |
| Supporting Subdomain | 业务必需但非核心、专门定制 | 中度投资 | 电商的"库存预占" |
| Generic Subdomain | 业务必需但无差异、可买现成 | 最小投资/外购 | 邮件发送、支付 |
3.2 判断标准
| 维度 | Core | Supporting | Generic |
|---|---|---|---|
| 业务独特性 | 高度差异化 | 中等差异化 | 无差异化 |
| 变更频率 | 高(业务创新驱动) | 中 | 低(行业标准稳定) |
| 失败影响 | 致命(核心竞争力) | 严重 | 一般 |
| 外部可用 | 不可 | 有限 | 充分(很多 SaaS) |
| 投资回报 | 高 | 中 | 低(买更便宜) |
3.3 投入比例
Vernon 强调 80% 资源投在 Core:
典型投入比例:
Core Domain: 50-80% 资源(最好的人、最新技术)
Supporting Subdomain: 20-40% 资源
Generic Subdomain: < 10% 资源(或外购)反模式:
- 平摊资源(每个子域 33%)→ 没有核心
- Core 投入过少(< 30%)→ 失去竞争力
- Generic 投入过多(> 30%)→ 浪费资源
3.4 Core Domain 的识别
识别 Core 的 5 个问题:
1. 什么让客户选我们而不是竞争对手?
2. 什么业务变更最频繁?
3. 什么业务规则最复杂?
4. 什么失败会让我们失去市场?
5. 什么专业能力最难复制?
≥ 3 个 ✓ → Core
否则 → Supporting / Generic四、工程实践
实战 1:电商系统的子域划分
业务:电商平台
子域:
1. 商品搜索 + 个性化推荐 → Core(核心竞争力)
2. 订单 + 库存预占 → Supporting(必需但非独特)
3. 支付 + 物流 → Generic(用第三方)
4. 用户认证 + 权限 → Generic(用现成 IAM)
5. 营销活动 → Supporting(业务必需但相对通用)
投入:
Core(搜索推荐): 70% 资源(AI 团队、算法工程师)
Supporting(订单/营销): 25% 资源
Generic(支付/认证): 5% 资源(接 SaaS)实战 2:识别 Core Domain
步骤:
1. 列出业务的所有子域
2. 对每个子域问 5 个问题(见 3.4)
3. 评估投入回报比
4. 决定分类
例:金融科技公司
- 风控:5 个问题全 ✓ → Core(投入 60%)
- 账户:3 个 ✓ → Supporting(投入 25%)
- 支付通道:1 个 ✓ → Generic(外购,投入 5%)
- 反洗钱:2 个 ✓ → Supporting(投入 10%)实战 3:Core Domain 的团队配置
原则:
- 最好的工程师在 Core
- 资深业务专家配合 Core
- Core 团队小而精(< 9 人)
- Core 团队有自治权
反模式:
- Core 团队被"老员工"占据
- Core 团队跨多个子域
- Core 团队被"救火"工作淹没五、性能指标
| 指标 | 衡量 |
|---|---|
| Core 投入比例 | Core 域的资源占比(应该 50-80%) |
| Core 团队质量 | Core 团队平均资历/能力(应该最高) |
| Core 域变更频率 | Core 域的代码变更频率(应该高) |
| Generic 外购率 | Generic 域外购比例(应该 > 80%) |
六、边界判断
何时用 Core:
- 业务核心竞争力
- 高度差异化
- 失败影响致命
何时用 Supporting:
- 业务必需但非独特
- 中等差异化
- 外部可用但需要适配
何时用 Generic:
- 行业标准子域
- 无差异化需求
- 第三方 SaaS 可用
何时重新分类:
- 业务模式变化(如 ToC → ToB)
- 竞争格局变化(被超越)
- 技术变革(如 AI 改变游戏规则)
七、与其他 L 层方法论的关系
| 方法论 | 关系 |
|---|---|
| bounded-context | Core → 独立 BC;Generic → 共享 BC |
| context-map-relations | Core → Customer-Supplier 关系 |
| risk-driven-architecture | Core → 用复杂架构;Generic → 用简单架构 |
| architecture-evolution(主题) | Core 优先演化 |
八、钱学森原话
Ch 21 §21.3(大系统理论): "大系统理论所研究的对象是:由许多子系统组成的复杂系统,这些子系统之间存在复杂的相互关联。大系统的特点是规模庞大、结构复杂、目标多样。"
Ch 21 §21.3(资源分配): "大系统的协调控制不是平摊资源,而是按子系统的战略价值分配。"
九、总结
子域分类 = 战略资源的优先级排序:
| 步骤 | 行动 |
|---|---|
| 1 | 列出所有子域 |
| 2 | 用 5 个问题评估每个子域 |
| 3 | 决定分类(Core/Supporting/Generic) |
| 4 | 按 50-80% / 20-40% / < 10% 分配资源 |
| 5 | Core 团队 = 最好的人 |
| 6 | Generic 域优先外购 |
核心原则:
- Core = 重点投资(不是平摊)
- Generic = 外购优先(不自造)
- 业务独特性是分类的核心判据
一句话总结:子域分类 = 把最好的资源投在让业务赢的地方。