flayはRuby製のオープンソース・ソフトウェア。最近のプログラミングではDRYという言葉が有名だ。Don’t repeat yourself、つまり同じことは繰り返さないことが大事だ。コピー&ペーストしたコードがどんなに酷いものか言うに及ばないが、繰り返しを省くことでコードがすっきりしバグの入り込む余地も減らせるようになる。

スクリーンショット(2010-01-08 12.05.06).png

修正前のスコアは38、修正して0に!

 

とは言え開発が継続的に行われていると徐々に同じようなコードも増えてくる。そこで行いたいのがリファクタリングだ。そのためにはまずはコードのチェックをするのが良いだろう。flayはまさにそのためのソフトウェアになる。

flayにファイルを渡すと内部を解析し、似たような箇所をリストアップしてくれる。結果はスコアにしてくれる。0が最も低い(重複していそうな箇所がない)数字で、上がっていくごとに重複が散見されるようになる。ディレクトリ全体で行えば複数ファイル間のチェックも行われる。

差分を表示する機能もあるので重複しているとおぼしき部分も見つけやすい。事前にユニットテストを書いておいてエラーが出ない状態にしつつリファクタリングを進めればDRYに沿った奇麗なコードになっていくだろう。バグを減らすためにも取り組みたい施策の一つだ。

執筆時のバージョン

 1.4.0

 

seattlerb’s flay at master - GitHub

 http://github.com/seattlerb/flay