[Ruby] リファクタリングの本を読んだ
- リファクタリング:Rubyエディション (Jay Fields/Shane Harvie/Martin Fowler with Kent Beck)
名著「リファクタリング」のRuby版。
ただ動くだけのRubyのコードを、保守しやすくわかりやすいRubyのコードにするには、どう書き直せば(どうリファクタリングすれば)よいかを教えてくれる本。Rubyの文法を一通り勉強してプログラムを書けるようになった初心者がステップアップするために読むべき本。
どういうコードの場合には、どういう手順で、どういう風に、わかりやすいコードにすれば良いか、カタログのように分類されていて、それぞれのリファクタリングに名前がつけられている。
まず、リファクタリングの名前が紹介され、続いてその概要、リファクタリングをする理由が説明される。その後、リファクタリングの具体的な手順が提示され、さらにサンプルの紹介が続く。手順やサンプルの紹介ではユニット・テストが失敗しないように細かい段階を踏むように解説してあるところが実践的でよい。
時には、テストに失敗しないためだけにメソッドを追加して、最後のステップでそのメソッドを消すような一見、回りくどい手順のように思えるものもある (「8.5 配列からオブジェクトヘ」)。が、これは先人の知恵であり、安全確実にしかも効率的にリファクタリングするための手順となっているはずなので、まずは手順に従ってやってみることだ。
また、メタプログラミングやブロックなどRubyならではと思われるリファクタリングもいくつかあるので、旧版を持っている人にも一読の価値はあると思う。
なお、Rubyの解説書ではないので、Rubyの解説書は別に用意しておく(あらかじめ、Rubyを知っている)必要がある。
リファクタリングとは、「申し訳ありませんができません」と決して言わない ことである。ただ、修正すればよいのだ。
どうでもいいことだが、RubyUnitの作者であり、Ruby256本極道編の著者としては、次の一文が ちょっぴりショックだった(確かTalbottもTest::Unit以前に別のテストフレームワークを書いていたはず)。
Rubyには複数のテストフレームワークがあるが、Nathaniel Talbottが開発した オープンソースのテストフレームワーク、Test::Unitがその最初のものである。
| 固定リンク
この記事へのコメントは終了しました。
コメント