ソフトウェア設計で大切なこと(2/2)
前ブログの続き。。。
土曜日日曜日に、「サンデーソングブック」という山下達郎のFMラジオ番組があり、愛聴しているのだが、そこで取り上げられる楽曲は「時代を超えて残る曲」だ。達郎自身、「長く残る曲というものはどういう特徴を持つものか、に興味がある」と言っていた。
これに触発され、より長く残る価値観、を見つけて、それを後輩たちに伝えたいと思う気持ちが僕の中で最近高まってきている。前ブログでは、ずっと「よい設計とは」として残り続けている設計の特徴を挙げた。
オブジェクト指向技術について、ここ2,3年は「先祖がえり」というか、「長く読まれるであろう価値観に焦点を当てた本」が出ていることも動機の1つだ。
- Rebecca Wirfs-Brock の『オブジェクトデザイン』
- Eric Evan の 『Domain Driven Design』
- Ken-Pughの『インターフェイス指向設計』(※1/5追記)
この23冊が双璧だろうと思う。これらは、「オブジェクト指向そのもの」なのだ。Webのシステムなど、特定のアーキテクチャにとらわれない、デザインそのもの。そして、それが最新手法(たとえばアジャイル)という文脈でも生きている。
例えば、DDDには、「ユビキタス言語」というパタンがある。これは、システムの利用者、開発者が共に理解できるボキャブラリをつくり、その言葉を使って「要件」から「コードのクラス名」まで統一していこう、というものだ。このような考え方は、システム開発の古くから、例えば「用語辞書」という言い方で使われている。現在の文脈では、例えば初期のXPで「メタファ」と呼ばれていたプラクティスをオーバーライドできる威力がある。そして、「全員同席」をはじめとするアジャイルプラクティスともなじむようになっているのだ。
2000年代は、時代が開発手法により過ぎ、ソフトウェア設計に関するエポックメイキングな本が「ほとんど出ていない」。
つまり、ソフトウェア設計手法としては、95年まででストップしてしまっている(ぼくの中では、GoFのデザインパターンが最後)。だから、重要な書籍は、いまでも十分、読む価値がある。いつか、「サンデーソングブック」のように、過去の書籍を味わいながら紹介する、というブログシリーズをやりたいものだ。デマルコの構造化設計の本あたりから、始めてみようか。。。