第1章 リファクタリング–最初の例

リファクタリングの第一歩
対象となるコードに対してちゃんとしたテスト群を作り出すこと
リファクタリングする上での頼みの綱
思わぬ間違いから守ってくれるバグ発見器

関数の分割
長い関数をリファクタリングする際には、全体をいくつかに分割できる箇所を探す
理解したことをコードに埋め込むには、意味のあるコードの塊を関数にして、何をしているかを端的に表す名前をつける
リファクタリングをする場合にも、意味のある関数にし、関数を抽出する
→ 関数の抽出

関数を抽出する際に、スコープ外になる変数がないかを見定める必要がある
値を変更しない変数については、パラメーターとして渡す
変更する場合には、返り値にしたりするなどの注意が必要

一時変数があるとローカルスコープの変数が増えてしまい、抽出が面倒になる
まず、代入している変数の右辺を関数にする
→ 問い合わせによる一時変数の置き換え 次に、一時変数を利用している箇所を、その関数に置き換える
→ 変数のインライン化 更に、呼び出した関数の中で取得できるようなら、関数内で取得し、呼び出し元の引数を削除する
→ 関数宣言の変更

計算処理と、出力処理の2つのフェーズに分ける → フェーズの分離

条件記述の塊をポリモーフィズムへ変化させていく
→ ポリモーフィズムによる条件記述の置き換え

感想

ハンガリアン記法あんまり好きじゃないんだよな