変数レベル/メソッドレベル/型レベルでのリファクタリングを支援するために、Visual Studio 2017が提供している機能を取り上げる。
本特集では前後編にわたってリファクタリングとVisual Studio 2017(以降、VS 2017)のサポート機能について解説していく。
前編では、リファクタリングとは「ソフトウェアの外部の振る舞いを保ったままで、内部の構造を改善していく」ことであるという定義を再確認し、外部の振る舞いを変えないと信用できるツールを使う利点を述べた。今回は、そのツールとして、Visual Studio 2017(以降、VS 2017)のリファクタリングサポート機能を解説する。本稿で紹介する機能は、無償のVS 2017 Communityエディションのものだ。
なお、VS 2017がサポートしている機能の中で「名前の変更」については、その操作方法も含めて前編の最後で詳しく紹介しているので、そちらをご覧いただきたい。また、本稿に登場するリファクタリングの名前は、二重カギかっこ(『』)で囲ったものはマーチン・ファウラー著「新装版リファクタリング」(ISBN978-4274050190、2014年発行)によるもの、その後ろの丸かっこ内はマーチン・ファウラー氏のWebサイト「Catalog of Refactorings」(英語)によるものだ。リファクタリングの内容について詳しく知りたいときは、それらの本やWebサイトを参照してほしい。
これから紹介するリファクタリングサポート機能の操作方法は、どれもほぼ同じだ。リファクタリングの対象とする部分を指定してから[Ctrl]+[.]キーを押し、リファクタリング方法を選択して[Enter]キーを押す。変数などが自動生成された場合は、その変数名などをリネームして完了である(次の画像)。
リファクタリングサポート機能の使い方(VS 2017 Communityエディション)
これは『メソッドの抽出』(Extract Method)の一種である『条件記述の分解』(Decompose Conditional)リファクタリングの最初のステップの例である。
1番目: まず、リファクタリングの対象にする部分を指定する(ここでは、条件式「n % 3 == 0」)。対象が1語だけの場合は、その中にカーソルを置くだけでもよい。それ以外の場合は、対象範囲を選択状態にする。次に、[Ctrl]+[.]キーを押すなどして、リファクタリングサポート機能を呼び出す。
2番目: 指定した部分に適用できるサポート機能が一覧される。右側には、そのリファクタリングの結果が示されている。赤色の部分が削除され、緑色の部分が追加されることを示している。複数の候補が表示された場合は、カーソルキーなどで切り替える(マウスの場合はホバーさせて選ぶ。クリックすると確定してしまうので注意)。
3番目: [Enter]キーかマウスクリックで、サポート機能が実行される。
4番目: リファクタリングが実行され、新しいメソッドや変数が生成された場合には、仮の名前が付けられる。仮の名前が生成されたときは、引き続き「名前の変更」機能が起動するので、新しい名前を入力していく(前編の3ページ目を参照)。
5番目: 名前を書き換えて[Enter]キーを押したら、完了だ。行頭のマークが緑色になっていることから、変更後のファイルは保存されていると分かる。
なお、[Ctrl]+[.]キーを押す代わりに、次のようにしてもリファクタリングサポート機能を呼び出せる。
また、実行したい機能が分かっているときは、対象を指定してからメニューバーの[編集]−[リファクター]を使ってもよい(ただし、全ての機能を呼び出せるわけではない)。
まずは変数レベルのリファクタリングに対して、VS 2017が提供している機能を見てみよう。
Copyright© Digital Advantage Corp. All Rights Reserved.