戦術的DDD実践ガイド 2026
8つの戦術的パターン(Value Object、Entity、集約など)を費用対効果で検証し、実務での使い分けを判断する。
戦術的DDD実践ガイド 2026
8つの戦術的パターン(Value Object、Entity、集約など)を費用対効果で検証し、実務での使い分けを判断する。
目次
- プロローグ ── 「DDDをやっているつもり」を終わりにする ---
- 戦術的DDDの全体像 ── 8パターンの関係と優先順位 DDDの戦術的パターンは8個あるが、全てを同時に導入する必要はない。むしろ「すべて入れる」ことを目的にすると、確実に失敗する。本章では、8パターンの関係を一枚の地図に配置し、費用対効果の観点で優先順位 をつける。
- Value Object ── 最も費用対効果の高いパターン Value Object(値オブジェクト、以下VO)は、戦術的DDDの8パターンの中で最も費用対効果が高い。導入コストは低く、得られるリターンは大きい。本章では、なぜVOが有効なのか、どう実装するか、そしていつ VO化してはいけない のかを扱う。
- Entity ── 識別子とライフサイクルの設計 Entity(エンティティ)は、一意な識別子を持ち、時間とともに状態が変化するオブジェクト だ。VOが「値」なら、Entity は「ライフサイクルを持つ個体」である。本章では、Entityの本質と、実務で最も陥りやすい「God Entity(神エンティティ)」問題、そしてFactoryとの関係を扱う。
- 集約(Aggregate)── 一貫性境界の設計と実務の痛み 集約(Aggregate)は戦術的DDDで 最も強力で、最も失敗しやすい パターンだ。設計を間違えると、パフォーマンス問題・デッドロック・結果整合性への逃げが連鎖する。本章では、集約の本質と Vernon の4ルールを実務視点で再解釈し、「集約を小さく保つ」が2026年の定説 である理由を示す。さらに、集約の限界を超える新しいアプローチ DCB にも触れる。
- Services と Repository ── 「どこに責務を置くか」問題 DDDでプロジェクトを始めると、誰もが必ず一度は迷う 問いがある。
- Domain Events ── 疎結合の光と影 Domain Events(ドメインイベント)は、集約間の結合を疎にする 強力な武器だ。同時に、運用観測性(observability)が追いつかないと、すぐに「何が起きているか分からないシステム」 を生む諸刃の剣でもある。本章は、Domain Events の3つの配信モード、実装パターン、そして陥りがちな落とし穴を扱う。
- アンチパターン・カタログ ── 実践で踏んだ地雷を分類する 本章は、これまでの章で断片的に触れてきたアンチパターンを、症状・根本原因・脱出法 の3点セットで体系化する。Zenn執筆原則11(ベストプラクティスとアンチパターンはセットで、特にアンチパターンは症状/根本原因/脱出法の形式)に忠実に従う。
- 2026年のDDD論争総覧 ── Anemic・DCB・Vertical Slice・AI時代 2003年の青本刊行から20年以上が経った2026年、DDDは 過去最も揺さぶられている。「Kill Aggregate!」と集約の死を唱える提案、「レイヤリング不要」と語る Vertical Slice、「LLMがコードを書くならモデリング不要」という急進的な意見── これらの論争は無視できない。
- エピローグ ── 判断軸と段階的導入戦略 最終章では、ここまでの9章を踏まえて、読者が自分のプロジェクトで「何を・いつ・どう」DDDを適用するか の判断軸と導入戦略をまとめる。本記事の結論でもある。