リファクタリングとは
シンボリック定数によるマジックナンバーの置き換え―ソースに100と書いてあったら
制御フラグの削除―制御フラグでコードが読みにくいなら
アサーションの導入―「これが成り立つはず」というコメントがあったら
ヌルオブジェクトの導入―nullチェックが多すぎるなら
メソッドの抽出―コードが長すぎて読みにくいなら
クラスの抽出―クラスの責任が多すぎるなら
クラスによるタイプコードの置き換え―オブジェクトの識別にintが使われていたら
サブクラスによるタイプコードの置き換え―タイプコードごとに振る舞いが違うなら(1)
State/Strategyによるタイプコードの置き換え―タイプコードごとに振る舞いが違うなら(2)
例外によるエラーコードの置き換え―エラー処理が散らばっているなら
Factory Methodによるコンストラクタの置き換え―クラス名がnewでハードコードされていたら
観察されるデータの複製―モデルとレビューが混在していたら
委譲による継承の置き換え―IS‐A関係じゃないのに継承してたら
委譲の隠蔽―委譲先まで見えてたら
継承の分割―継承がもつれていたら