リファクタリングというとかっこいいが、
とどのつまり、外部仕様を変更せずに振る舞いを改善しませう、ってこと。
「おまい、継承って知ってるか?」
みたいな見るに耐えない数千行のクラスを泣きながら書き直すような
作業のことだ。そのためにはJUnit等でテスティングが簡単にできるようにする。
と、きれい事を並べられたところで、見るに耐えない元のコードは
大抵は分割単位が酷く、またそこら中のコンポーネントと強依存しているため、
テストクラスを書くのが容易ではない。
メソッドとしてのin/outだけをチェックすればいいようなものだと
簡単なんだろうけど、DB更新を伴うものや、ファイルI/Oを伴うものだと
Assertの為に大量のチェック関数を用意しなければならず、工数が工数を呼ぶ。
まさしく、手段が目的状態に陥る。
結城先生のリファクタリング本が出るようだが、その辺りどうなんだろう。
で、結局は「動いているものを触るな!」状態になる。
十分なテスティングが用意できなければ、リファクタリングによって、
新たな問題を引き起こさないことを保証できないからだ。


