新装版 リファクタリング―既存のコードを安全に改善する― [Martin Fowler著/児玉 公信 他訳]の書評です。
結論から言うと、プログラマーなら読んでおきたい、リファクタリングに関するバイブル的な書籍の一冊です。
■ 良い点
・ 最初の1章でリファクタリングの具体例を簡単かつ詳細に挙げている
・ 悪いコードの特徴が整理されている(コードの不吉な臭い)
・ リファクタリングのカタログが充実している
・ 説明の構成が一貫している
・ 手順がとても詳細である
■ 悪い点
・ 後の解説部分が前に来ることがある
・ コードの例において、フィールドが最初にあったり最後にあったりする
・ if文に{}がない場合が多い
・ 翻訳本のため例や訳に分かりづらいところがある
■ 総評
リファクタリングにおけるバイブル的な書籍であり、プログラミングにおける本においても名著とされている一冊です。約15年ぶりに新装版として出版されたので、早速、読んでみました。
初版本を数年前に読んだときは、オブジェクト指向やデザインパターンについての理解が不十分だったので途中で挫折したのですが、今回は読了することができました。内容も9割以上は理解できたと思います。
つまり、この「リファクタリング」を読むにあたり、オブジェクト指向とデザインパターンの知識は前提として必須となります。また、リファクタリングの手法上、いわゆるテストが重要であるので、ユニットテスト等の知識もあることが望ましいです。
内容的には、最初に第1章で、リファクタリングの例が簡単かつ比較的詳細に述べられます。全体を通してJavaが使われるのですが、この最初の1章が理解できれば、本書の核であるリファクタリングのカタログを読む実力があるはずです。
第3章では、コードの不吉な臭いとして、悪いコードの特徴が22パターン挙げられます。本書の全部が理解できなくてもこの部分だけでも読む価値があります。読めば、どういったコードが悪いものなのかが理解できます。
第5章から第12章までが本書の核であり、各リファクタリングの手法の解説となります。リファクタリングの「名前、要約、手順、例」と構成の一貫した解説が順々に続きます。ここでは、各リファクタリングがどの「コードの不吉な臭い」に効果的なのかを確認しながら読むのがいいと思います。なお、全部で72のリファクタリングの手法があり、各手法はコンパクトながらも、全体的にはボリューム満載です。
本書を読了すれば、早速、コードの改善に取り掛かりたくなること間違いなしです。