Ruby 逆引きレシピ レシピ175-184

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

今日はレシピ 175 から 184 までを読みました。

Dai 10 章、テスト/最適化のところです。

レシピ 175 から 180 は TestUnit によるテストについてです。わたしはもっぱら RSpec を利用していて TestUnit の利用法は詳しく知らなかったので興味深く読みました。慣れてるのでこれからも RSpec を使うと思いますが、Ruby本体のテストは TestUnit(1.9 は minitest)で書かれているので知っておいたほうがいいでしょうし。

レシピ 181 は RSpec についてですが 1 レシピだけでとても簡素な紹介になっています。るびまRSpec の記事また読みたいです。

レシピ 182 は rcovRuby スクリプトカバレッジを取る方法の紹介です。これもお世話になっていたツールなのですが、残念ながら 1.9 対応がまだ実験的な段階でエラーになったり落ちたり(1.9.2-preview1)します。あと 1.8 でもあまり大量のコードを一度にカバレッジ取ろうとすると HTML を出力するところでメモリを使いすぎて落ちることがあります。

レシピ 183 はプロファイラの紹介で、特に ruby-prof は標準添付の profile.rb が実行時間がとても長くなってしまうのに比べて高速です。わたしも最近使うようになりました。レシピ本で初めて知ったのですが、ruby-prof は再帰呼び出しの時にメソッド名の末尾に -1 が付くことで通常の呼び出しと区別されているんだそうです。

レシピ 184 より、reek という RubyGems パッケージのツールを使うと Rubyスクリプトを解析して、コードの重複や長すぎるメソッドなどリファクタリングするポイントを教えてくれます。ためしに自分で書いたそこそこの大きさのあるライブラリを解析にかけてみたら、かなりひっかかりました。全て潰すのはなかなか骨が折れそうですが、矯正ギブスとして使うのによさそうです。