あの「レガシーコード改善ガイド」が出るよ


翔泳社さんから 7/14 に いよいよ出版される「レガシーコード改善ガイド」。

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

昨年、原書の "Working Effectively with Legacy Code" を読書会に参加してずっと読んでいたが、その邦訳だ。

読書会というと通常はもっとスローペースなのだろうけど、あのボリュームの洋書をわずか6回*1で読み切ってしまった。みんな続きが早く早く読みたくて興奮していた、のかもしれない。


で、この読書会が縁で、なんとなぜだか Developers Summit でスピーカーの一員となって、大勢の前でレガシーコードの魅力を熱く語るという恥ずかしい罰ゲーム光栄な仕事をさせていただけることになった。

今となっては「もっとうまくやれたのでは」と反省点ばかり思い浮かんでくるセッションではあったが、「本を読んでみたくなった」と言ってもらえたので、甲斐はあったと思う。


そして同じく読書会が縁で、今回の "Working Effectively with Legacy Code" 日本語訳にて、ほんのちょこっとちょっぴりお手伝い*2する機会があった。

そんなこんなで、訳者の方から翔泳社さんを通じて、「レガシーコード改善ガイド」を献本いただいてしまった。
ありがたいというか申し訳ないというか。
いや、嬉しいです。ありがとうございます。


"Working Effectively with Legacy Code" っておもしろい? と聞かれたら毎回必ず「類書が他にない」と答えてる。


内容は、ユニットテスト(自動テスト)の重要性や やり方。それを教えてくれる本ということだけなら他にも選択肢はある。
けど、この本のスタート地点は「テストが書かれていないコードがすでに死ぬほどある状態」。


忙しくてテストなんか書いてられないよ! に対して、普通のテスト屋さんなら「でもテスト書いた方が最終的には生産性上がるから」とか回答するところ。
一方 Michael Feathers は同じ質問(というよりSOS?)に「大変だね。わかるよ。でも、こことここだけでもテスト書いたらどう?」と答える。


たくさんの現場の人が今まさに困っている状況から、メソッドだけではなくモチベーションも含めて、「どうやって」テストを書いていくか。
つまり WEwLC はそういう本なのだ。


デブサミでは、そこらへんの思いを川柳にしたためる、というショートプレゼンをやらせてもらった。



これ見て、「うは。あるある(T_T」「どんだけ俺」と感じるところがもしあれば、「レガシーコード改善ガイド」を手に取ってみることをお勧め。


正直、原書は結構くだけた文章で読むのが大変なのだが、日本語ならそんな心配はない。
ここだけの話、間違っていたサンプルコードや図も修正されている(けっこう大量w)。
しかも、翻訳書は安くできない事情が何やら色々あるらしいのに、なんと「レガシーコード改善ガイド」は原書よりも安く手に入る(すげー)*3
お得。


「この読書会が縁で」系のお話は実はもう1つあるんだけど、たぶん近いうちに。

*1:6回目は贅沢な おまけ みたいなもんで、実質は5回

*2:謙遜ではなく。「ここの訳語はこうの方がいいかも〜」レベル

*3:2冊組みとはいえ、PRML なんて原書の倍するし