【DDD】ドメイン駆動設計入門【要約・感想・まとめ】

書籍情報
メルカリでの検索結果はこちら
著者について
成瀬 允宣
テックリードとしてソフトウェア開発の第一線で活躍するプログラマ。
開発業務の傍ら、所属会社GMOインターネットグループにて研修講師を務めるほか、大規模カンファレンス登壇や個人セミナー講師として活躍。
得意領域はソフトウェア開発・設計全般。難解な知識を分かりやすく噛み砕いて解説することを得意とする。
引用元:SEplus
書評
どんな本?
皆さんはDDD=DomainDrivenDesign=ドメイン駆動設計を知っているでしょうか。
DDDとは2003年にエリック・エヴァンスという人が提唱した、ドメイン(=システムが解決しようとしているビジネス上の問題や要件を表す「領域」のこと)を中心に据えて設計をしていく手法のことです。
本書では難解なドメイン駆動設計の手法を噛み砕いて説明してくれます。
なお本書ではドメインの概念をモデルに落とし込む「モデリング」についてはほとんど触れていません。いわゆる「軽量DDD」といわれる部分を扱っています。
なのでどのようにモデリングするか詳細に知りたい場合は他の本を参照する必要があります。
読んだきっかけ
基本設計をなんとなくやってきましたが、
教科書的な作法に則って理解しながら設計したいと考えたことがきっかけです!
要約
- ドメイン駆動設計とはシステムが解決しようとしているビジネス上の問題や要件を表す「領域」=ドメインを中心に設計を行う手法。
- ドメインモデル貧血症とはドメインモデル(ドメインを抽象化した概念のこと、エンティティ、値オブジェクトが該当する)が持つべきビジネスロジック(処理または関数)を持っておらず代わりにドメインサービス(ドメインモデルに記載すると不自然な処理を集めるオブジェクト)に処理が寄せられてしまっている状態のことを指す。
- DI(Dependency Injection=依存性注入)とは依存関係をオブジェクトの中に記載せず外部から依存関係を与える方法。例えば関数の引数を用いて依存させるオブジェクトなどを引き渡すなどの方法がある。
良かった点・悪かった点
感想・まとめ
本書ではドメイン駆動設計とは何なのか具体的に何をどのように進めていいのかを学びました。
私自身結構なんとなく設計をやっていたので、本書を読むことにより各パターンの名前や役割を知ることができました。
ドメインサービスの章で語られている「ドメインモデル貧血症」と言う言葉は初めて知りました。これに関しては実装しているときに特にデメリットを感じた部分でもあります。例えばモデルに持っていなければいけないメソッドをコントローラーに持っていたりすると、他の人が回収する時に様々な場所を改修しなければいけないといったふうに結びつけることで、理解が容易になりました。
新機能を開発するときの設計業務をする際に少しづつ活かしながら身につけています。
こんな人におすすめ!
総評
ドメイン駆動設計についてやさしく教えてくれる本
設計工程においてDDDはもはやデファクトスタンダードとなりつつあると認識しています。原点は海外の難解な書物なので本書は原点を読む前のいいクッションとなります。
気になったらぜひ読んでみてね😆