1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(パターン追加失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
重複する条件分岐の断片の統合(Consolidate Duplicate Conditional Fragments)とは
複数条件文内に共通で入っている処理を外出しすること
ポイント
- 共通処理が入っている位置によって、切り出し先が変わる
- 複数の処理が共通している場合、メソッドの抽出を行う
例
- 共通処理が条件文内の末尾(冒頭)にある場合は末尾(冒頭)に切り出す。
if tax?
total = price * 1.08
puts(total)
else
total = price
puts(total)
end
↓
if tax?
total = price * 1.08
else
total = price
end
puts(total)
- 複数の処理が共通している場合、メソッドの抽出を行う
if sunny?
greet
eat
walk
else
greet
eat
drive
end
↓
def routine
greet
eat
end
routine
if sunny?
walk
else
drive
end
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
切り分けの意味をしっかり理解する