2004-11-11(Thu) [長年日記]
■1 『WORKING EFFECTIVELY WITH LEGACY CODE』
何百頁を費していても駄本は駄本であることから逃れられない。一方、良書は良書であることを、1フレーズで決定的に証明してしまう。Michael Feathers*1の手になる『WORKING EFFECTIVELY WITH LEGACY CODE』はそうした良書に数え上げられるべき一冊である。
レガシーコードと呼ばれるようなコードはどのようなコードか。それは、言語や環境といったテクノロジでもなれば設計の巧拙でもなければ、変更や保守のしやすさでもない。 Prefaceにて著者曰く、
To me, legacy code is simply code without tests.
明快! 続けて曰く、テストが無いコードはbad codeであり、そのコードがどんなに巧く美しくオブジェクト指向でカプセル化されていようとも関係ない。テストが無ければ、コードを修正した結果が改善だったのか改悪だったのかを知るすべもないし、そもそもどういう方向に修正すべきかもわからない、と。
繰り返す。"Code without test is bad code." 明快だ。ForewordはRobert C.Matrint、というか表紙に「ROBERT C. MARTIN SERIES」と書いてある。これはstrong buyですよ、奥さん。
我らがFowlerタンもお薦め
blikiで『〜 WITH LEGACY CODE』について言及していたエントリが未訳出だったので、拙訳(未完成)をbliki_jaにcontribute。おくればせながら1周年おめでとうございます。
*1 CppUnit, FitCppの作者にしてObjectMenter社員
■2 S2NazoWebことS2GroovyServlet
祭。といっても私の脳内での祭だが。来週末までにとにかくさわっておきたい。
NanoWebというよりもGroovletっす