イノたまごラボ・あのぶる の「こんなの作ったよ!」

「イノたまごラボ」はひとり同人サークルのようなものです。今のところ同人誌は作っていませんが、ソフトウェアからイベントまで、心惹かれたものを細々と。

エリック・エヴァンスのドメイン駆動設計を読んだ

公約通り読みました、エリック本。雑多なんですけど感想まとめ。

現時点でのDDDの理解としては、「現実のビジネスに寄り添うために、ドメインエキスパートとよく話し合って設計しようね」であり、いわゆる「コード読んだらわかるでしょ」を案件関係者全員(非開発メンバー含め!)に対して実現することを半ば本気で目指すための開発手法とかものの考え方である、という感じ。

アジャイルとかエクストリームプログラミングが割とキーワードとして頻出だったんですが、(当たり前の話とは言え)ビジネスメンバーがそのドメインに関してのエキスパートであることを大前提としてるのはアジャイル開発と共通してるのかなぁってちょっと思いました*1。「すごいな」って思うソフトウェアエンジニアの人、みんなちゃんとお客さんのことよく見てるし。
新規サービスの開発とか、ゲームの開発とか、案件によってはチームでドメイン知識自体を作り上げながらの開発になるので、そういうチームだと本当に実装をドメインに追従させるスピードを保つって大切だし大変なんだよなーって思います。

軽量DDDというか、モデル駆動設計でのデザインパターンを手によく馴染ませるというのは確かに大事だなぁというか、語彙として自由に使えるようになるまではちょっと難しいかもというか難しかったので、この間読んだドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本の凄いところってそういうことなのかなぁと。本格的なDDD本読む前に読むの、確かにお勧めです。 それからその辺の具体的なコードの書き方に言及しているあたりって「(ドメインをクリーンに保つために)リファクタリングしやすいコードの書き方」の話なので、そこだけマネしてもある程度有効ってのは確かにそうなのかなーとは思いました。私もまだ自由に使いこなすところまで至ってないのですが、確かに良さそうという実感は感じ始めています。
ただ、たぶんデザインパターンのところはもしかしたら「現状のベストプラクティスはこれ」という話であって実はあんまりDDDの本質(?)ではないというか、「この形を守ったらDDDである」ということではないのかなーと思っていて、おそらくこの本で言及されていたデザインパターンじゃなくても、体系立てた設計でドメイン知識をコードに最大限詰め込むことが出来ればおそらくDDDとしてはアリなんじゃないかという理解をしました。
……というところまで行ってこの記事を読み返してハッとするところまでがワンセットでした。(チートシート印刷して自宅デスクに貼ってあります🙌) qiita.com

で、前述のとおり何のためにDDDを使うかって「現実のビジネスに寄り添うため」で、かつドメインエキスパートと積極的にコミュニケーションしないのもアジャイル開発を前提とするならわりとあり得ない気がするので、DDD不要論に対しては「アジャイルな開発をやるつもりがない」か「当たり前過ぎて手法として括る必要を感じていない」か「私が何か致命的な勘違いをしている」かのどれかなんじゃないかなぁって思っています。たぶん最有力候補は一番最後
実際、無意識的にやってる人も一定数居ると思う。アジャイルであるとはどういうことか的な議論と同じ感じで形だけ整えればいいってものではないし、この考え方にDDDって名前を付けたっていうことに意義のひとつがあるんだろうな、とか。

そして「どういう役割があって何をしたいのか」をクリアにするのが目的と考えると、読みやすい文章の書き方とかデザイン分野の情報設計みたいなところに通じるものがあるはずだなって思ったのでその辺の知識も仕入れたくなってきました。

ということで、最後にエリック本を読んで読みたくなった本のまとめ。部屋の次読む本ゾーンに既に3冊くらい積んでるので正直消化スピードが追いつきません。

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

  • 作者:結城 浩
  • 発売日: 2004/06/19
  • メディア: 大型本

理科系の作文技術 (中公新書 (624))

理科系の作文技術 (中公新書 (624))

数学文章作法 基礎編 (ちくま学芸文庫)

数学文章作法 基礎編 (ちくま学芸文庫)

  • 作者:結城 浩
  • 発売日: 2013/04/11
  • メディア: 文庫

数学文章作法 推敲編 (ちくま学芸文庫)

数学文章作法 推敲編 (ちくま学芸文庫)

  • 作者:結城 浩
  • 発売日: 2014/12/12
  • メディア: 文庫

ノンデザイナーズ・デザインブック [第4版]

ノンデザイナーズ・デザインブック [第4版]

  • 作者:Robin Williams
  • 発売日: 2016/06/30
  • メディア: 単行本(ソフトカバー)

時を超えた建設の道

時を超えた建設の道

(そういえばちゃんとUML勉強したことなかった……)

(↑8/4にしれっと追加)

*1:なんか、よくある現場の悲劇系のパターンのひとつに、ドメインエキスパートであるべき発注者が……いえなんでもございません