COMWARE PLUS プラス・サムシングを大切なお客さまへ

メールマガジンのご登録
ITジャーナリストや現役書店員、編集者が選ぶ デジタル人材のためのブックレビュー 
ITジャーナリストや現役書店員、編集者が選ぶ デジタル人材のためのブックレビュー 
ポスト
        
        

今月の書籍

レビュワー:高橋 征義

  • 『達人プログラマー(第2版) 熟達に向けたあなたの旅』
  • 『UMLモデリングレッスン』

20年の歳月を経て甦った、「より良いプログラマー」になるための洞察の数々を収めた一冊

 本書は2000年に出版された『達人プログラマー』を2020年に全面的に改訂したもので、つい先日、ITエンジニア本大賞2022の技術書部門大賞を受賞した。

 著者のDavid ThomasとAndrew Huntは、アジャイルソフトウェア開発の潮流が生まれるきっかけとなった「アジャイルソフトウェア開発宣言(アジャイルマニフェスト)」の17名の署名者のうちの2人としても知られている。署名者の多くは何かしら軽量開発プロセスを推進していたが、DaveとAndyは特にどれかの開発プロセスを推しているわけでもなければ、自らの開発プロセスを考案していたわけでもない。「本書を書いた人(たち)」として、このマニフェストが生まれたイベントの主宰者であるRobert C. Martinらに招待され、参加した、と言って良いだろう。本書の影響力の大きさが感じられる逸話だ。もちろん、現在でも本書は2人の主著として挙げられている。

 原題は『The Pragmatic Programmer』。「Pragmatic」を「達人」と訳したのはかなり思い切っているが、副題の「your journey to mastery」を踏まえたものであろう。

 全部で53章にわたる本書のアドバイスは、まさに実用的、実践的な内容で、分野も多岐にわたる。「あなたの人生」や「割れ窓理論」、「共に働く」といった人に関わることもあれば、「曳光弾」や「プロトタイプとポストイット」「エンジニアリング日誌」のような開発のやり方もある。また、「表明を用いたプログラミング」「変換のプログラミング」「並行性」といった具体的なコードについても触れている。契約による設計(DbC)や有限状態機械(FSM)など、ソフトウェア技術に関する妙に具体的なこだわりもちょっと面白い。結局、「人」と「コード」の両方を深く見据える態度こそ、達人プログラマーが達人である理由なのだろう。

 評者も初めて読んだのは10年以上前のことだが、読むたびに違う箇所が印象に残る。最初は新たな知識として仕入れたことが、今では実感を伴って理解できることも多い。折に触れて何度も読み返したい、その価値のある一冊である。

『達人プログラマー(第2版) 熟達に向けたあなたの旅』

著者:David Thomas、Andrew Hunt

翻訳:村上 雅章

出版社:オーム社

https://www.ohmsha.co.jp/book/9784274226298/

あらためて概念モデリングに入門したい人に読んで欲しい

 本書はUMLを使った概念モデリングを習得するための、例題と基本パターンを中心としてまとめた一冊である。

 最近はウォーターフォール型開発のように要件定義から設計した後で実装を行うことは少なくなったかもしれない。ソフトウェア開発に関わっていても、モデリングとは疎遠なこともありうる。とはいえ、新たな仕様が追加される際など、いきなり具体的なコードを書く前にもう少しざっくりとしたレベルで既存の機能との整合性を図りつつ新しい機能をまとめ、共有したい、といったことは普通にある。そのような際に求められるのはある種の「概念モデル」で、そのための「概念モデリング」のスキルは欠かせない。

 しかしながら、具体的なコードに近い設計技術はともかく、このようなモデリングについての書籍は入手しづらいのが現状ではないだろうか。このコラムで紹介した『エリック・エヴァンスのドメイン駆動設計』にしても、具体的なドメインモデルの作り方についてはあまり詳しく書かれておらず、他の情報源に期待されているように感じる。

 以前はそれなりに書籍もあったはずだが、トッパンやピアソンなどの出版社が撤退してしまったため本が入手しづらくなったのか、そもそも本が古くなり翻訳の版権も切れたため流通しなくなったのか、あるいはUMLのブームが一段落して以降はあまり流行らなくなったのか。さまざまな原因は考えられるにせよ、とにかく少ないものは少ない。その中では、モデリング初心者にも勧められる貴重な一冊が本書である。

 表題の通り、本書のモデリングはUMLで記述することが大前提である。とはいえ、本書はUMLの知識がほとんどない人でも読めるよう工夫されているので、UMLはあまり詳しくないという方であれば入門も兼ねられる(もっとも、UMLについて網羅的に解説する本ではないため、広くUMLの知識を得たい場合は別途UMLの入門書も合わせて読むとよいだろう)。使われている図についてもクラス図、(ちょっと独自の手を加えた)オブジェクト図、ステートマシン図の3つに限定し、クラス図についても機能モデリングは省いてデータモデリングに特化することで、簡潔化を図っている。

 かといって、内容が浅いわけではない。「第10章 将来の変更に備える」でのコラム「知識レベルと操作レベル」では、『アナリシスパターン』でも紹介されている知識レベルと操作レベルについて、わかりやすい例で紹介されている。入門としては十分すぎるくらいだろう。そして、書籍冒頭に挙げられた21のパターンと90ほどのポイントについて理解を深めれば、モデリングの基本がだいぶ見えてくる。

 ドメインモデルなどのモデリングについて、具体的なクラス設計からもう少し離れて要求と設計の関係をまとめてみたい、そしてより良い設計を考えたいという人には、格好のレッスンになるだろう。

『UMLモデリングレッスン』

著者:平澤 章

出版社:日経BP社

https://www.nikkeibp.co.jp/atclpubmkt/book/08/P83490/

今月のレビュワー

296_img03.jpg

高橋征義 (たかはし・まさよし)

札幌出身。Web制作会社にてプログラマとして勤務する傍ら、2004年にRubyの開発者と利用者を支援する団体、日本Rubyの会を設立、現在まで代表を務める。2010年にITエンジニア向けの技術系電子書籍の制作と販売を行う株式会社達人出版会を設立、現在まで代表取締役。著書に『たのしいRuby』(共著)など。好きな作家は新井素子。

2022/03/17

この記事のPDFをダウンロードする

ポスト

事例紹介

スマートフォン用リンク

エバンジェリストが語るICTの未来

スマートフォン用リンク

ページトップへ

トップへ