リファクタリング 3章 リファクタリングを行うタイミングについては明確な定義を持つことが出来ない。 だから経験の中から「匂い」を感じて時期を決める。 この章と本の裏表紙にある表にはいつリファクタリングを行うかのヒントが書かれている。 重複したコード 言うまでもなく無駄。 同一クラスの複数メソッドに同じ式>「メソッドの抽出」 重複しているコードが複数の兄弟クラスに存在する場合>「メソッドの抽出」後、「メソッドの引き上げ」 コードが似ているけど完全に同一ではない場合>「メソッドの抽出」後、場合によっては「TemplateMethodの形成」 複数のメソッドが同じ処理を異なるアルゴリズムで実装している>「アルゴリズムの取り替え」 関係のないクラス間で重複コード>「クラスの抽出」をして新しいクラスに委譲、あるいはどちらかのクラスに持って委譲 長すぎるメソッド メソッドは長いほど理解しにくくなる。