あらすじ
「ドメイン駆動設計は難しい」そう感じて挫折した経験のある方にこそ、手にとっていただきたい一冊です。 ドメイン駆動設計の本質は、ビジネスの中核となる領域を見極め、そこに開発リソースを集中させることにあります。本書では、座学だけで終わらせず、コードを「つくりながら」この設計思想を体得することを目指します。 具体的には「オンライン書店サービスのカタログ管理」を題材に、イベントストーミングによる業務分析、UMLによるモデリング、そしてTypeScriptでの実装まで、設計から実装へ落とし込む一連のプロセスを追体験できます。 「戦略的設計と戦術的設計はどう連携するのか」「ビジネスロジックを技術的詳細からどう切り離すのか」。本書を通じて、これまで断片的だった知識が体系的につながる瞬間を体験できるはずです。実装フェーズでは、特典のGitHubリポジトリにて各章ごとのコードを確認しながら学習を進められます。 著者自身、TypeScriptでドメイン駆動設計を実践する際、具体的な情報が見つからず苦労しました。「同じ悩みを抱える開発者に、実践的な知識とノウハウを届けたい」。それが本書の執筆動機です。学習用ハンズオンとしてはもちろん、現場でのリファレンスとしても長くお使いいただける一冊です。 〇本書の構成 Part 1 ドメイン駆動設計への招待 Chapter 1 はじめに Chapter 2 ビジネス課題とドメイン駆動設計 Part 2 ビジネス価値の発見 Chapter 3 戦略的設計 Chapter 4 業務知識の獲得 Chapter 5 ドメインモデルの可視化 Part 3 ドメインモデルの実装 Chapter 6 戦術的設計とコード実装 Chapter 7 アーキテクチャ Chapter 8 実装の準備 Chapter 9 値オブジェクト Chapter 10 エンティティ Chapter 11 集約 Chapter 12 ドメインサービス Chapter 13 リポジトリ Chapter 14 アプリケーションサービス Chapter 15 プレゼンテーション層の実装 Part 4 ビジネス価値を守り続ける Chapter 16 拡張性とメンテナンス Chapter 17 中核ビジネスロジックの独立性を守る Chapter 18 ビジネスロジックを技術実装の詳細から分離する Chapter 19 イベント駆動アーキテクチャ Chapter 20 Outboxパターンによる確実なイベント発行 Chapter 21 イベントソーシングという選択肢