texta.fm #1 の感想
Mar 12, 2021 05:33 · 30 words · 1 minute read
ポッドキャスト texta.fm が面白い。
https://anchor.fm/textafm/episodes/1--Software-Development-in-2003-eimq17
第1回のタイトルは「Software Development in 2003」。「エリック・エヴァンスのドメイン駆動設計」(以下DDD本)はソフトウェア設計の界隈ではバイブルのように扱われたり、必読の技術書としてよく取り上げられたりする。2013年にソフトウェアエンジニアとして活動し始めたホストの Yasaichi さんは、この本の価値が分かりにくいと感じている。出版当時の状況を知る t_wada さんがその原因として次の3つあげている。
- 開発スタイルの変化
- 出版の問題
- 技術の変化
開発スタイルの変化
2003年の出版当時はウォーターフォールを含むフェイズに区切ったソフトウェア開発が良いとされていた。この開発スタイルでは要件定義、設計、実装、テスト、リリースといったフェイズが一方向に進んでいた。設計者はオブジェクトモデラー、アーキテクト、ソフトウェアアナリストと呼ばれ、実装はしなかった。設計(モデリング)がうまく行けば、よいソフトウェアができる。実装はモデルをコードに書き下すだけの簡単な仕事だと考えられていた。設計では実装のことは考えてはいけないとまで言われていた。
しかし現実は違った。実装・運用してみて分かることはたくさんあった。実装できない設計だったり、設計が上手く機能しないこともあった。しかしこの開発フェイズは一方向なので、設計書が見直されることはなかった。そこで実装者は設計とは異なる実装を行う。コードが設計書と乖離していく。
DDD本はこれを問題視し、実装から設計にフィードバックしましょうと言った。ビジネスが育ち、ビジネスへの理解が深まったら、設計に反映させましょうと訴えた。DDD本はまえがきにもある通りアジャイル開発を前提としている。反復的な開発サイクルによって設計の更新が可能となる。
この問題意識は、私を含め仕事を始めたときからアジャイル開発がデフォルトになっていた人には分かりにくい。設計者と実装者は同じだし、リファクタリングや設計を見直すことは当然だと思っているからだ。
出版の問題
若い世代が、上記の開発スタイルの変化やオブジェクトモデリングのことを知らない・知りにくい理由として、出版の問題がある。90年代後半から00年代前半はオブジェクト志向設計やオブジェクトモデリングの全盛期で、書籍もたくさん出版されたが、多くは絶版になってしまった。一方DDD本の日本語翻訳は2011年出版と遅かった。また翔泳社という絶版にしにくい出版社から出されたこともあってDDD本は今でも残っている。後の世代は、00年前後にオブジェクトモデリングという分野や仕事があったこと、またコードと設計が乖離していたことを知る手段としての書籍が限られてしまった。
技術の変化
DDD本の中盤は具体的なデザインパターンを取り扱っているが、2003年時のデザインパターンなので古い。サンプルコードも古い。ウェブサービスを支える技術や環境は2003年以降、Ruby on Railsやクラウドの登場、関数型言語に由来するテクニックなどで大きく変わっている。DDD本の第2部、第3部は "古い" と理解した上で読まなければならないし、そこが評価されているわけではない。
まとめ
私もDDD本を読みにくいと感じていた。言い回しが難しいのもあるが、著者の訴える課題に共感しづらかったのかもしれない。歴史を知らないとDDD本は当たり前のことを言っているだけで、なぜ評価されているか分からない。2003年当時のソフトウェア開発の問題を知ることで、その理由が分かるようになる。