CodeZineを運営する翔泳社から、2月13日(木)に『ドメイン駆動設計入門』が発売となります。本書はエリック・エヴァンスが2003年に著書で提唱したドメイン駆動設計を、現代の知見を交えながら入門者向けに解説した1冊。ソフトウェアのユーザーが解決したい課題や実際の業務を理解し、その知識をプログラムに反映させる開発手法について学びたい方におすすめです。
『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本』は、ユーザーの実際の業務を深く理解しながらプログラムに反映させてソフトウェアを開発する手法「ドメイン駆動設計」の入門書です。
著者の成瀬允宣さんによれば、ドメイン駆動設計の提唱者であるエリック・エヴァンスが2003年に『Domain-Driven Design』(邦訳は『エリック・エヴァンスのドメイン駆動設計』)を執筆した当時は、業務(ドメイン)の理解よりもとにかく早く開発してリリースすることが重視されていたそうです。
また、当時のソフトウェアはユーザーが抱えるその場の問題解決が重視され、長期的な運用を視野に入れた設計でもなかったとのこと。ですが、ドメイン駆動設計が提唱されて以降、時間はかかりましたが、ユーザーの業務領域(ドメイン)や問題解決に長く寄り添えるソフトウェア開発が行われるようになってきました。
今ではユーザーファーストの考え方が浸透し、ソフトウェア開発もユーザー目線で行われることが当たり前。だからこそ、改めてドメイン駆動設計に大きな価値が見出されているのです。
ソフトウェアが現実の業務で役立つ機能を持ち、業務の変更にも対応しながら安定的に運用されるようにするにはドメイン駆動設計を適用することが欠かせません。ぜひ本書で、その基本を学んでみてください(サンプルコードはC#を採用しています)。
目次
Chapter1 ドメイン駆動設計とは
Chapter2 システム固有の値を表現する「値オブジェクト」
Chapter3 ライフサイクルのあるオブジェクト「エンティティ」
Chapter4 不自然さを解決する「ドメインサービス」
Chapter5 データにまつわる処理を分離する「リポジトリ」
Chapter6 ユースケースを実現する「アプリケーションサービス」
Chapter7 柔軟性をもたらす依存関係のコントロール
Chapter8 ソフトウェアシステムを組み立てる
Chapter9 複雑な生成処理を行う「ファクトリ」
Chapter10 データの整合性を保つ
Chapter11 アプリケーションを1から組み立てる
Chapter12 ドメインのルールを守る「集約」
Chapter13 複雑な条件を表現する「仕様」
Chapter14 アーキテクチャ
Chapter15 ドメイン駆動設計のとびらを開こう
Appendix ソリューション構成
この記事は参考になりましたか?
- この記事の著者
-
渡部 拓也(ワタナベ タクヤ)
翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です