1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
条件文の分解(Decompose Conditional)とは
判定メソッド化
条件文をメソッドとして抽出し、メソッド名に意味を持たせること
ポイント
- 算術演算子をifの条件式から消す。
- 複数の条件式の示す意味をメソッド名にする。
- コメントに記載してある内容をメソッド名にする。
例
# 平成
if i >= 1989 && i <= 2019
end
↓
def heisei?(i)
i >= 1989 && i <= 2019
end
if heisei?(i)
puts '多分平成'
end
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
スコープが狭くて影響が小さいものから