はじめに
Javaでリファクタリングを行う上で必要と思われることを随時追加していく。
参考にした書籍は以下。
- 結城 浩 著『Java言語で学ぶリファクタリング入門』ソフトバンククリエイティブ(株)刊
- Dustin Boswell, Trevor Foucher 著『リーダブルコード』オライリー・ジャパン刊
- 平澤 章 著『オブジェクト指向でなぜつくるのか』日経BP社刊
意識しておくべき原則
- DRY(Don’t Repeat Your Self)原則
- https://ja.wikipedia.org/wiki/Don%27t_repeat_yourself
- 繰り返し(重複)を避けること
- KISS(Keep it simple, stupid)の原則
- https://ja.wikipedia.org/wiki/KISS%E3%81%AE%E5%8E%9F%E5%89%87
- 設計の簡潔性は大切、不必要な複雑性は避けるべき
- YAGNI(You ain't gonna need it)原則
- https://ja.wikipedia.org/wiki/YAGNI
- 機能は実際に必要となるまでは追加しないのがよい
前提知識
- OOP(オブジェクト指向プログラミング)の基礎的な理解
- クラスとインスタンスの関係
- アクセス修飾子
- 継承(抽象クラスとインタフェース)
- オーバーライド、オーバーロード
- ローカル変数・インスタンス変数・static変数(クラス変数)
リファクタリングの定義
- 外部から見たプログラムの振る舞いを変えずに、プログラム内部の構造を改善すること
テストについて
- 必ずユニットテスト(unit test)が必要
ユニットテストの定義
- 開発者自身が作成すること
- コード(通常はクラスやメソッドの単位)を対象としていること
- 自動化されていること
リファクタリングの目的
- バグを見つけやすくする
- 機能追加しやすくする
- レビューしやすくする
コツ
- 感覚で修正するのではなく、リファクタリングカタログに従う
- ステップ・バイ・ステップ(一度に一つずつ)
- まず不吉な匂いをかぎ取ること
不吉な匂い(リファクタリングの可能性)
不吉な匂いとは、リファクタリングを必要としているコードの部分のこと。
プログラムの中で「理解しにくい」「修正しにくい」「拡張しにくい」部分を感覚的に感じるコツを匂いに例えたもの。
リファクタリング・カタログ
マーチン・ファウラー著「Refactoring(洋書)」
が所属するThoughtWorks社が公開している、リファクタリングの方法をカタログ化したもの
頻出のカタログを一部抜粋したもの
リファクタリング・カタログ(抜粋) 参照