Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

書籍 リファクタリング−プログラマーの体質改善 | メソッドの構成

内容

メソッドの構成
リファクタリング 対象 対応
メソッドの抽出 1つにまとめられるコードの断片がある コードの断片をメソッドにして、その目的を説明する名前をつける
メソッドのインライン化 メソッドの本体が名前と同じくらいわかりやすい メソッドの本体を呼び出し元の本体に組み込み、メソッドを削除する
一時変数のインライン化 単純な式で1度だけ代入されている一時変数があり、その一時変数が他のリファクタリングの邪魔になっている その一時変数に対するすべての参照を取り除き、式にする
問い合わせによる一時変数の置き換え 一時変数を使って式の結果を保存している 式をメソッドにする。一時変数のすべての参照箇所を式に置き換える。新しいメソッドは他のメソッドからも使える
説明用変数の導入 複雑な式がある 処理の目的を説明するような名前を持つ一時変数に式、または式の一部の結果を代入する
一時変数の分離 ループ変数でも計算結果の蓄積用の変数でもないのに、複数回代入される一時変数がある 代入ごとに別々の一時変数を用意する
パラメータへの代入の除去 コードが引数に代入を行っている 代わりに一時変数を使う
メソッドオブジェクトによるメソッドの置き換え メソッドの抽出」を適用できないようなローカル変数の使い方をしている長いメソッドがある メソッドを独自のオブジェクトに変え、すべてのローカル変数がそのオブジェクトのインスタンス変数になるようにする。こうすれば、メソッドを分解して、同じオブジェクトの別のメソッドにすることが可能になる
アルゴリズムの取り替え アルゴリズムをもっとわかりやすいものにしたい メソッド本体を新しいアルゴリズムで書き換える