2012-07-24(火) [長年日記]
■ リーダブルコード (Dustin Boswell/Trevor Foucher/角 征典)
今はプログラマにとって、歴史上もっとも「赤の他人のコードを読まなくてはならない」時代かも知れない。OSもフレームワークもクラスライブラリもオープンソースで、なにかトラブると頼れるチームの仲間ではない、地球の反対側にいる見知らぬ誰かが書いたものを読まざるをえない状況になる。
おのずとコードを「読む」技術を(苦労して)身につけなくてはいけないわけだが、同じ苦労を大勢がするのは非効率だ、書き手がもうちょっとなんとかしてくれてもいいのではないか……というエンジニアらしい合理性によって「他人が読んでわかりやすいコードを書こう」というテーマの本が登場する。つまりこの本。
冒頭からもう、自分の弱いところをチクチクと刺されて、身悶えしながら読むわけですよ。自分だって、一週間後の自分は赤の他人だという痛い経験を何度もしているわけだから、自分自身のためにもできるだけ明快なコードを書こうと意識していたつもりながら、その意識そもののが明快なルールを欠いていたことに気付かされてしまう。かといって責められてつらいといった気分にならないのは、本書が「頼れる先輩」が気さくに話しかけてくる雰囲気をまとっているためだろう。もちろんその雰囲気を削がない翻訳もいい。
構成は変数の名づけ方(名前重要!)から始まって、関数(メソッド)内の構成、クラスの構成という具合に視野を徐々に広げていく。しかも一人で今日にでも着手できる小さな部分の話、広範囲に影響が及ぶリファクタリングの話という風にテーマの粒度が揃っているからわかりやすい。はっきりと明快なルールのおかげで理解も早い。おまけに日本語版にはその先にあるもっと大きな領域、つまり「リーダブルコードをチームの習慣・文化として根付かせるにはどうしたら良いか」というソーシャルに踏み込んだ解説までついている。ここまでたどり着ければ文句はなかろう。
強いて不満があるとすれば、いくつかの書評でも指摘されているdo~whileの例がイマイチなことと、リファクタリングの説明からテストが抜け落ちていること(別の章にテストがあるのでここはあえて触れていないのだろう)、そしてチームとしての取り組みに紙数を割いていない点(だがもちろんこれは前述のとおり解説できっちりフォローされている)。つまりまぁ、ほとんどカンペキ。
売れてる技術書の例にならってAmazonには在庫がないので(なんせすでに4刷!)、オライリーから直接購入するのが吉。もちろん超特急でリリースされたEbook版もある。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
オライリージャパン
¥2,640