ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本

ドメインクドウセッケイニュウモン ボトムアップデワカルドメインクドウセッケイノキホン

ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本の表紙
ソフトウェア工学 / 設計
著者:
成瀬 允宣(ナルセ マサノブ)
価格:
¥3,960
出版社:
翔泳社
出版日:
2020年02月13日頃
ISBN:
9784798150727
在庫:
1
判型:
単行本
4.31(26 件 / 楽天ブックス)
中級者向け
DDDドメイン駆動設計入門書実装パターンソフトウェア設計オブジェクト指向ビジネスロジックアーキテクチャ設計ソフトウェア開発設計パターン

なぜ注目されているか

総合94位 ✦ NEW 言及 101 件・うち記事 75 件を掲載
071420222023202420252026

書籍紹介

学習しやすいパターンが満載!
ドメイン駆動設計をやさしく学べる入門書!

【本書の概要】

本書は、

『エリック・エヴァンスのドメイン駆動設計』 (ISBN978-4-7981-2196-3、翔泳社)、

『実践ドメイン駆動設計』 (ISBN978-4-7981-3161-0、翔泳社)

に感銘を受けた著者が贈る、ドメイン駆動設計の入門書です。

【対象読者】

『エリック・エヴァンスのドメイン駆動設計』や

『実践ドメイン駆動設計』をこれから読もうとしている方、

もしくはすでに読んだものの、「もう少しやさしい入門書も読みたい」

と感じているエンジニアの方を対象としています。

【本書の特徴】

ドメイン駆動設計において、実践が難しいものは後回しにして、

理解しやすい実装パターンからドメイン駆動設計の世界に

飛び込んでもらうことを目的としています。

そこで初心者にとって、理解しやすい、そして実践しやすいパターンからスタートできるよう、

解説を工夫しています。

またドメイン駆動設計で頻出するパターンの記述方法やその目的も併せて解説しています。

本書で解説するパターンは以下のとおりです。

【知識を表現するパターン】

・値オブジェクト

・エンティティ

・ドメインサービス

【アプリケーションを実現するためのパターン】

・リポジトリ

・アプリケーションサービス

・ファクトリ

【知識を表現する、より発展的なパターン】

・集約

・仕様

技書の森解説

ドメイン駆動設計を学ぼうとして分厚い原典に挑み、概念の多さに途中で手が止まった人は少なくありません。『ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本』 (成瀬 允宣 著、翔泳社、2020 年 2 月刊) は、そうした読者のために、実践が難しい部分を後回しにして、理解しやすく実装しやすいパターンからドメイン駆動設計 (DDD) に入っていく入門書です。版元の紹介では、『エリック・エヴァンスのドメイン駆動設計』と『実践ドメイン駆動設計』に感銘を受けた著者が書いた本とされ、この 2 冊をこれから読もうとしている人や、読んだもののもう少しやさしい入門書を求めている人を対象にしています。

値オブジェクトから集約と仕様まで、全 15 章の構成

構成は Chapter 1 から Chapter 15 に、付録のソリューション構成が続きます。1 章でドメイン駆動設計の考え方と本書が目指すゴールを示したあと、2 章の値オブジェクト、3 章のエンティティ、4 章のドメインサービスと、ドメインの知識を表現するパターンを一つずつ扱います。5 章のリポジトリでは SQL を使った実装とオブジェクトリレーショナルマッパーを使った実装、テスト用のリポジトリまで踏み込み、6 章のアプリケーションサービス、7 章の依存関係のコントロール、8 章のソフトウェアシステムの組み立てでは、コマンドラインインターフェースや MVC フレームワークへの組み込みとユニットテストへ進みます。9 章のファクトリ、10 章のデータの整合性を経て、11 章でアプリケーションを 1 から組み立て、12 章の集約と 13 章の仕様という発展的なパターン、14 章のアーキテクチャへと続きます。最後の 15 章では、ドメインエキスパートとのモデリング、ユビキタス言語、境界付けられたコンテキスト、コンテキストマップといった、原典の中心にある考え方への入口を示して締めくくります。

パターンから入るボトムアップの学び方が効く理由

ドメイン駆動設計の原典は、業務の専門家と開発者が共通の言葉でモデルを育てるという戦略の話と、そのモデルをコードに写すための戦術的なパターンの話が一体になっています。戦略の部分は組織や業務の状況に左右されるため、手を動かして確かめにくく、初学者がつまずきやすい箇所です。本書はこの順番を逆にして、エンティティと値オブジェクト の区別、リポジトリによるデータアクセスの分離、依存関係逆転の原則 によるインフラへの依存の切り離しといった、コードの手触りで確かめられるところから積み上げます。ドメインのルールがアプリケーションサービスの側へ流れ出すと、ドメインオブジェクトがデータを入れるだけの器になる 貧血ドメインモデル に陥りがちですが、6 章にはドメインのルールの流出を扱う節があり、パターンを使う目的まで含めて説明しているのが特徴です。

オブジェクト指向の前提知識と、読み終えた後の進み方

読み進めるには、クラスとインターフェース、カプセル化といったオブジェクト指向の基本と、データベースへの読み書きの経験があると楽です。付録のソリューション構成には C# 特有のプロジェクト管理用語を扱うコラムがあり、開発環境の説明は C# を前提にした箇所を含みます。15 章の冒頭に軽量 DDD に陥らないための節が置かれていることが示すとおり、パターンの使い方を覚えるだけではドメイン駆動設計の目的には届きません。業務領域の分析や境界の引き方を体系立てて学ぶには、本書の後に原典や『ドメイン駆動設計をはじめよう』のような戦略寄りの本へ進む道筋になります。設計の本全体の中での位置づけを確かめたい場合は、設計とアーキテクチャの本の選び方 も参考になります。

原典を開く前に土台を作りたい人、あるいは原典を読んだもののコードに落とし込む段階で迷っている人にとって、本書はパターンごとの目的と実装の形を対応づけて身につけられる一冊です。値オブジェクトを一つ導入するところから手元のコードを変え始められるので、設計の議論に参加するための共通の語彙を、実装を通して手に入れたい開発者に向いています。

言及した記事 (75 件)

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

関連する本

関連記事

関連用語

共有: