リファクタリング:Rubyエディション
きっかけ
きっかけは、今年のデブサミの技術書対象で、
という新装版の紹介をしていて、面白そうだけどJavaはなぁ・・・ということで
全体を通して
はじめにリファクタリング全体の原則や、リファクタリングが必要になりそうな箇所を紹介した後に、
実際にリファクタリングをするテクニックを細かく分類し、それぞれについては手順を含めて紹介している。
言うなれば、リファクタリングについて全てが載っている辞書のようなもの。
原則
いろいろ書いてあるから一言ではまとめられないけど、
という、大事だけど実際にやっていると見失いがちなことをきっちり描いてある。
あやしいパターン
コードの臭いという表現で、こゆときはリファクタリングが必要かもね、って書いてある。
1つ1つは当たり前のことだけど、まとまっていることが大事。
開発をしていると、ここまでは感覚的に理解していることも多い。
手法
細かいことを1つ1つ丁寧に説明している、本書の一番コアな部分。
割とオブジェクト指向、クラスや継承を利用して、コードの複雑性や、重複を取り除くという話が多い印象。
とはいえ、サブクラスにすべきか、逆に継承を解消してまとめるかは、正直ケースバイケース。
途中途中で、そのようなことも暗に匂わせつつ、網羅的に説明するという姿勢を崩さずに説明しきる感じ。
ものによっては、逆のことを手法として両方紹介していたりして、当たり前だけど、偏ってないところは好感が持てる。
最後に
あくまで辞書というのは、道を見失ったときにリファレンス的に読む本であって、これを頭から読んで理解して、実践に生かせるとは限らない。
Java版はわからないけど、Rubyだから複雑になりがちなところもあれば、Rubyだから簡単にリファクタリングできるようなところもある。
特に、オブジェクト指向的なところは、おそらくRubyとよくマッチするので、単純にRubyの扱い方という観点からも興味深いサンプルがいくつもあった。
読むのは時間かかったけど・・・