このまえ一瞬話題になった本読んだのでメモ。
目次
総評
- 長さ: ☆☆★★★
- 読みやすさ: ☆☆☆★★
- 英語のムズさ: ☆★★★★
- こんな人にオススメ
- DDD本読みたくないけど雰囲気だけ知りたいWebマン
- DDDはわかるけどJavaScriptよくわからないWebマン
本書では、ケーススタディを通じてDDDの諸概念を解説し、これを用いたWebアプリの開発方法を紹介する。 わりとフンワリした感じ。
「JavaScript」という名前を冠しているが、ExpressとMochaを使ってるくらいの話だった。 Expressに特化した知見や、SPAに特有の問題に対する解決策などは提案されていない。 また、DDD特有の諸概念についても大まかな解説にとどまり、前触れ無く「Service」という言葉が出てくるなど、正確な理解を得るのは難しい感じだった。
正直、DDD関連の本を読んだことのある人やJSガリガリ書いてる人だと、得られるものは少ないと思う。
長さは短く(前書を除いたら176ページ)、平易な英語で書かれているので、ちびちび進めても1,2週ほどで読めそう。
JavaScript成分あんまり無い
JavaScript成分はExpressとかmochaの本当に基本的な使い方を解説してるくらい。
あとは「値オブジェクトは Object.freeze()
するんじゃゾ 」とか「Array#reduce最高」とかそういう感じ。
SPAでの設計ベストプラクティスやExpressで良いAPI書く方法とか期待してたけどそういうのはなかった。
奴隷管理アプリケーション
ケーススタディは「オークの王国の奴隷管理アプリケーション」を題材に進んでいく。 王国には奴隷の監獄が複数あり、奴隷に金鉱を掘らせることで富を得ている。 また、周辺国への侵略戦争を常時進めており、新しい労働力が補充されるようになっている。
開発者は、ある監獄の管理者(ドメインエキスパート)である顧客に対し、奴隷の増加ペースや逃亡率を考慮して労働力を管理するアプリケーションを作成する。
元ネタは著者がやったホテルの予約管理Webアプリらしい。
- 奴隷が多いほど儲かる : 空室が少ないほど儲かる
- 奴隷の逃亡 : 客のドタキャン
- 奴隷の輸送 : オーバーブッキングした客を他のホテルに送る?
どうやら、↓とあるように、現実世界からかけ離れた設定にすることで、クライアント(ドメインエキスパート)との言語のすり合わせの重要性を強調する、という目的だったようだ。
we are dealing with a world that is very alien to us and that does not have a very established language to deal with its processes
まとめ
DDD本読もうぜ!
僕はまだ実践DDDしか読んでなくて、集約とリポジトリについてよくわかってない所があったんだけど、無印DDDの方ちょっとだけ立ち読みしたら一瞬で疑問氷解した やっぱり無印DDDの方も読まないとなー

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (130件) を見る

実践ドメイン駆動設計 (Object Oriented Selection)
- 作者: ヴァーン・ヴァーノン,高木正弘
- 出版社/メーカー: 翔泳社
- 発売日: 2015/03/17
- メディア: 大型本
- この商品を含むブログ (2件) を見る