mcpField
D
ddd-tactical-patterns

ddd-tactical-patterns

github.com/sickn33开发48.7k155 次安装今天更新
代码仓库

关于 ddd-tactical-patterns

ddd-tactical-patterns 是一项开发技能,帮助将业务规则转化为战术领域驱动设计代码结构。它着重处理不变量、领域对象行为、聚合边界、仓储和领域事件。

主要功能

  1. 01围绕不变量设计聚合
  2. 02建模经过验证的不可变值对象
  3. 03将行为保留在领域对象中
  4. 04为状态转换发出事件
  5. 05以聚合边界划定仓储

适用场景

  1. 01重构贫血领域模型
  2. 02定义聚合边界和不变量
  3. 03划定仓储与领域事件边界

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill ddd-tactical-patterns

安装后在 Claude Code 中输入/ddd-tactical-patterns确认已加载。

附带文件references/tactical-checklist.md

详细介绍

DDD 战术模式

何时使用此技能

  • 将领域规则转化为代码结构。
  • 设计聚合边界与不变量。
  • 将贫血模型重构为行为丰富的领域对象。
  • 定义仓储契约与领域事件边界。

何时不要使用此技能

  • 你仍在定义战略边界。
  • 任务仅是 API 文档或 UI 布局。
  • 完整的 DDD 复杂度并不合理。

说明

  1. 首先识别不变量,并围绕它们设计聚合。
  2. 为经过验证的概念建模不可变值对象。
  3. 将领域行为保留在领域对象中,而不是控制器中。
  4. 为有意义的状态转换发出领域事件。
  5. 将仓储保持在聚合根边界处。

如果需要详细检查清单,请打开 references/tactical-checklist.md。

示例

class Order {
  private status: "draft" | "submitted" = "draft";

  submit(itemsCount: number): void {
    if (!Number.isInteger(itemsCount) || itemsCount <= 0) throw new Error("Order cannot be submitted empty");
    if (this.status !== "draft") throw new Error("Order already submitted");
    this.status = "submitted";
  }
}

限制

  • 此技能不定义部署架构。
  • 它不选择数据库或传输协议。
  • 它应与测试模式配合使用,以实现不变量覆盖。

评论

支持 Markdown