コーディングしていると、ロジックの共通部分をメソッド化したり、変数の名前を変更したりして、プログラムの機能を変更せずにコードを改善していくことがよくあります。
「このような修正を安全に実施するためのノウハウをパターン化したもの」をリファクタリングパターンと呼びます。テスト駆動開発において、リファクタリングは状態がグリーンになった際に必ず実施する作業となっています。
VS2005 Team Systemにはリファクタリングパターンを適用する機能があります(注3)。このようにいうと、この機能を実行すれば勝手にコードをどんどん書き換えて洗練してくれるような気がしますが、実際にそんなことはありません。
※注3:
実際にはTeam Editionの固有の機能ではありません。
よく知られるリファクタリングパターンの一部分に対応しているだけですので、既存のコードのどの部分にどんなパターンを適用するかは開発者がVS2005 Team Systemに指示しなければなりません。期待はずれに聞こえるかもしれませんが、作業を自動化してくれることでパターン適用のミスも減らせますので意外と便利です。
VS2005 Team Systemで利用可能なリファクタリングパターンの1つとして「Extract Method」というものがあります。これはコードの一部を新たなメソッドとして抽出するリファクタリングです。利用方法は簡単で、メソッドとして抽出したい部分を右クリックし、「Refactor → Extract Method」を選択しメソッド名を入力します。
図4はユニットテストの紹介に使用したサンプルコード(注4)に、Extract Methodを適用した例です。
※注4:
リファクタリングのサンプルとして紹介するために、状態がグリーンになるように修正しています。
ここでは郵便番号が不正か否かを判定する部分を、別メソッドとして抽出しています。
図4:リファクタリング(Extract Methodの適用) (画像をクリックすると別ウィンドウに拡大図を表示します)
修正としては非常にシンプルなものですが、VS2005 Team Systemを使用することで機械的にパターンを適用でき、リファクタリング作業のミスが発生しにくくなります。
|