読者です 読者をやめる 読者になる 読者になる

Septeni Engineer's Blog

セプテーニエンジニアが綴る技術ブログ

IntelliJでリファクタリング

こんにちは、丸山です。

会社で開発をするときはIntelliJを使っていますが、このIntelliJにはリファクタリング機能があります。

そこでリファクタリングについての書籍である、Martin Fowlerの『新装版 リファクタリング―既存のコードを安全に改善する―』のメソッドの構成の章にあるリファクタリングのいくつかをこの機能で実行してみました。

メソッドの抽出

ひとまとまりの処理をメソッドにします。

Extract Method

このリファクタリングにはExtract Methodを使います。 メソッドとして抽出したい処理を選択し、⌥⌘Mまたはメニューのrefactor - Extract - Methodを選択して、メソッド名などの必要な情報を入力していきます。

f:id:to_maruyama:20170218210015g:plain

この方法でリファクタリングするとき、他にも同じ処理のかたまりがあった場合、それも置き換えるかどうかを選択することができます。

メソッドのインライン化

メソッド化するまでもない処理をインライン化して、不要なメソッドを消します。

Inline

このリファクタリングにはInlineを使います。 メソッドを呼び出している部分を選択して、⌥⌘Nまたはメニューのrefactor - Inlineを選択します。

f:id:to_maruyama:20170219201600g:plain

この方法でリファクタリングを行うと、メソッドを自動で消してくれます。

説明用変数の導入

複雑な式がある場合、その目的を説明する名前をつけた変数に代入することで扱いやすくします。

Extract Variable

このリファクタリングにはExtract Variableを使います。 変数の代入したい式を選択して、⌥⌘Vまたはメニューのrefactor - Variableを選択して、変数名を入力します。

f:id:to_maruyama:20170222190340g:plain

この方法でリファクタリングをするとき、他にも同じ式があった場合、それも置き換えるかどうかを選択することができます。

最後に

いくつかリファクタリング機能を紹介しましたが、この他にももちろんありますし、それらを組み合わせることでもっと複雑なリファクタリングも効率よく行うことができます。

『新装版 リファクタリング〜』にも書いてありますが、リファクタリングを手動で行うのは多くのことをチェックしなけれなならずコストがかかります。ツールを利用できるところは、どんどん利用していきましょう。

参考文献

Martin Fowler 新装版 リファクタリング―既存のコードを安全に改善する― オーム社