実践ドメイン駆動設計

ジッセンドメインクドウセッケイ

実践ドメイン駆動設計の表紙
ソフトウェア工学 / 設計
著者:
ヴォーン・ヴァーノン / 高木 正弘(ヴォーン ヴァーノン / タカギ マサヒロ)
出版社:
翔泳社
出版日:
2015年03月16日頃
ISBN:
9784798131610
シリーズ:
Object Oriented Selection
在庫:
在庫あり
4.2(7 件 / 楽天ブックス)
中級者向け
ソフトウェアアーキテクチャDDDオブジェクト指向ドメイン駆動設計エンティティ値オブジェクトコンテキストマップサブドメイン境界づけられたコンテキスト実践的なプログラミング

なぜ注目されているか

言及数
173位
総合383位 ↑ 5 ランクアップ 言及 20 件・うち記事 15 件を掲載
03520222023202420252026

書籍紹介

『エリック・エヴァンスのドメイン駆動設計』は、2003 年の刊行だったにもかかわらず、大型ソフトウェア構築時につきまとう不透明感を払拭するための指針として現役技術者に多大な影響を与えた。ある意味、エリック・エヴァンスの先見性によって、今日、必要とされるパタン / アンチパタンが整理されていたためだ。

とはいえ、それからすでに 11 年。ベースとなるオブジェクト指向はそれほど大きな変革はないものの、この 10 年の間にコンピューティングの対象は大きく増え、さらにドメイン駆動設計をコトバでは知っているものの、経験値のまだ低い技術者の増加もあり、理論だけではなく現状に則した形で体得する必要性が増している。

本書は DDD の考え方はもちろん、コミュニティや実際のビジネスシーンのなかから実践的な方法論を精錬し、いわば 21 世紀 (初頭) 型ドメイン駆動設計を伝授するものであり、現在のニーズに合致する内容で構成されている。

第 1 章 DDD への誘い
第 2 章 ドメイン、サブドメイン、境界づけられたコンテキスト

第 3 章 コンテキストマップ

第 4 章 アーキテクチャ

第 5 章 エンティティ

第 6 章 値オブジェクト

第 7 章 サービス

第 8 章 ドメインイベント

第 9 章 モジュール

第 10 章 集約

第 11 章 ファクトリ

第 12 章 リポジトリ

第 13 章 境界づけられたコンテキストの結合

第 14 章 アプリケーション

技書の森解説

エリック・エヴァンスが提唱した ドメイン駆動設計 を、実際のシステム設計にどう持ち込むかを扱う翻訳書が『実践ドメイン駆動設計』です。原タイトルは IMPLEMENTING DOMAIN-DRIVEN DESIGN で、ヴォーン・ヴァーノンの著書を髙木 正弘が訳し、翔泳社の Object Oriented Selection の一冊として 2015 年 3 月に刊行されました。副題「エリック・エヴァンスが確立した理論を実際の設計に応用する」が示すとおり、2003 年刊のエヴァンスの本で整理された考え方を前提に、それを現場の設計判断へつなぐことが本書の狙いです。

戦略から戦術へ並ぶ全 14 章の構成

版元ドットコムが掲げる目次は第 1 章「DDD への誘い」から第 14 章「アプリケーション」までの 14 章です。前半の第 2 章「ドメイン、サブドメイン、境界づけられたコンテキスト」と第 3 章「コンテキストマップ」で、どこで線を引いてモデルを分けるかという大きな設計を扱い、第 4 章「アーキテクチャ」を挟んで、第 5 章「エンティティ」から第 12 章「リポジトリ」までは値オブジェクト、サービス、ドメインイベント、モジュール、集約、ファクトリと、コードの単位に近い部品が 1 章ずつ並びます。そのあとに第 13 章「境界づけられたコンテキストの結合」と第 14 章「アプリケーション」が置かれて終わります。大きな区切りから始めて部品へ降り、最後に分けたモデルどうしのつなぎ方へ戻る並びは、部品の作り方より先に境界の引き方を固めるべきだという立場の表れと読めます。

なぜ境界の引き方と集約がつまずきやすいのか

ドメイン駆動設計の用語は、大きく 2 つの層に分かれます。1 つは 境界づけられたコンテキスト やコンテキストマップのような戦略の概念で、同じ「顧客」や「商品」という言葉でも部署や業務ごとに意味が違うことを認め、モデルが一貫した意味を持つ範囲を区切ります。もう 1 つはエンティティ、値オブジェクト、リポジトリのような戦術の部品で、区切った内側をコードとして組み立てます。実務で起きやすいのは、戦術の部品だけを取り入れて境界を引かないまま進め、巨大な 1 つのモデルに部品の名前だけが付いている状態です。もう 1 つのつまずきは 集約 の大きさで、一貫性を保ちたい範囲を広く取りすぎると、更新が衝突しやすく性能も落ちます。本書が戦略の章を先に置き、集約に独立した第 10 章を割いているのは、この 2 つが理論を読んだだけでは身につきにくい部分だからだと読めます。

エヴァンスの本との関係と、読む前の前提

版元の紹介文は、エヴァンスの本の刊行から 11 年が経ち、ドメイン駆動設計を言葉では知っていても経験値がまだ低い技術者が増えたことを背景に挙げ、本書をコミュニティや実際のビジネスの場から実践的な方法論を精錬した「21 世紀 (初頭) 型ドメイン駆動設計」と位置づけています。エヴァンスの本を読んだものの自分のシステムにどう当てはめるかで止まっている人が、まず手に取る位置づけの本です。オブジェクト指向による設計の基本と、業務システムの開発経験があると読み進めやすくなります。逆に、ドメイン駆動設計という言葉を初めて聞く段階で、短時間で概要だけをつかみたい人には分量が重く、薄い入門書で全体像を見てから戻るほうが近道です。2015 年刊の翻訳書なので、取り上げられる周辺技術はその時点のものだと考えて読むのが妥当です。

境界の引き方で議論が止まりがちなチームや、集約の大きさを決めかねてモデルが肥大していく案件を抱えている人にとって、戦略と戦術を 1 冊の中で順につなげてくれる本書は、設計の判断を言葉で説明できるようにする投資になります。困っている章から拾い読みし、必要に応じて第 2 章と第 3 章へ戻る使い方でも、元を取りやすい一冊です。

言及した記事 (15 件)

この本は技書デッキのカードです (攻撃 2 / 基本カード 1 枚除く / 使い切り) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: