ddd-contexts · git:20260802.59867c0 · 2026-08-02 · sha256 e136a63d9146db5c
ddd-contexts git:20260802.59867c0A
Immutable. This exact content never changes and is served at /api/v1/blob/e136a63d9146db5c.
--- name: ddd-contexts description: "设计限界上下文及其通用语言:边界、职责、词汇表、团队所有权与边界 ADR。" 使用场景:定义限界上下文时。 risk: safe source: self tags: "[ddd, strategic, bounded-context, ubiquitous-language]" date_added: "2026-05-08" --- # DDD Contexts > 🌐 English version: [English](SKILL.en.md) ## 使用时机 - 子域已分类,需要设计解决方案空间的限界上下文边界。 - 需要为每个上下文建立统一语言(Ubiquitous Language),消除术语歧义。 - `ddd-aggregates` 报告"不变量跨越多个上下文",或 `ddd-model-review` 报告"术语冲突率 > 20%"时,作为回溯目标重新执行。 ## 输入要求 - **必需**:子域分类表与核心域声明(来自 `ddd-subdomains`)、事件流与热点标注(来自 `ddd-discover`)。 - **可选**:组织信息(团队边界、交付节奏)、术语种子(来自 `ddd-scope`)。 ## 流程 1. **聚类**:以一致性边界与语言边界为依据,将能力聚类为上下文候选。一个上下文内的术语必须含义唯一。 2. **定义职责**:为每个上下文明确业务职责、核心概念、主要事件与数据所有权。 3. **建立语言**:为上下文内每个核心术语建立定义(含 1 个业务示例),标注同义词与反术语。 4. **划定边界**:明确哪些概念仅在此上下文内有效、哪些概念跨上下文时必须翻译。 5. **所有权与 ADR**:指定负责团队、决策者、契约 Owner;输出边界决策的 ADR(含理由、权衡、风险、备选方案)。 6. **冲突处理**:处理跨上下文的同名不同义术语——给出翻译策略或重命名建议。 ## 输出 | 工件 | 结构要求 | | :------------- | :--------------------------------------------------------------- | | 上下文目录 | 表格:上下文名、职责、核心术语、主要事件、数据所有权、负责团队 | | 通用语言词汇表 | 表格:术语、定义、业务示例、所属上下文、同义词、反术语、冲突处理 | | 反术语清单 | 表格:禁用词、禁用原因、推荐替代 | | 边界 ADR 列表 | 每条含:决策、理由、权衡、风险、备选方案 | | 语言演进规则 | 列表:新增/变更流程、评审角色、版本策略 | ## 校验清单 - [ ] 每个上下文有明确的"职责"与"非职责" - [ ] 数据所有权无冲突;跨上下文访问必须通过契约/翻译 - [ ] 每个上下文至少有 1 条显式的权衡点与风险点(ADR) - [ ] 术语冲突已全部处理(翻译或重命名) - [ ] 反术语清单覆盖技术词污染(Manager, Processor, Handler 等泛化词)与模糊业务词 - [ ] 若下单/交易流程中引入了"需求/意向"类中间概念(如 ShippingRequest、OrderDraft、BookingIntent),已声明其与主聚合的生命周期关系(升格为独立聚合 vs 等价为主聚合的 VO),两种选择均合法但 **必须明示并记录 ADR** ## 回溯触发 - > 5 个术语存在不可调和的跨上下文冲突 → 回溯至 `ddd-discover`,领域理解不足。 - 被 `ddd-aggregates` 触发:不变量跨越多个上下文 → 一致性需求被边界割裂,需重新划分。 - 被 `ddd-model-review` 触发:聚合边界与上下文边界矛盾,或术语冲突率 > 20%。 ## 示例 ```text @ddd-contexts 基于以下子域分类和事件流,帮我设计限界上下文: - Core: 预订与冲突管理 - Supporting: 会议室资源管理 - Generic: 用户身份与权限 [粘贴事件流表] 请输出上下文目录、通用语言词汇表、边界 ADR。 ```