ddd-tactical-patterns について
ddd-tactical-patternsは、業務ルールを戦術的ドメイン駆動設計のコード構造に落とし込む開発スキルです。不変条件、ドメインオブジェクトの振る舞い、集約境界、リポジトリ、ドメインイベントを扱います。
主な機能
- 01不変条件を軸に集約を設計
- 02検証済み不変値オブジェクトのモデル化
- 03ドメインオブジェクトに振る舞いを保持
- 04状態遷移時のイベント発行
- 05集約境界に沿ったリポジトリ設計
活用シーン
- 01貧血ドメインモデルのリファクタリング
- 02集約境界と不変条件の定義
- 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 の複雑さが正当化されない。
手順
- まず不変条件を特定し、それを中心に集約を設計します。
- 検証済みの概念に対して不変の値オブジェクトをモデル化します。
- ドメインの振る舞いはコントローラーではなくドメインオブジェクトに保持します。
- 意味のある状態遷移に対してドメインイベントを発行します。
- リポジトリは集約ルートの境界に保ちます。
詳細なチェックリストが必要な場合は、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 対応