1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(パターン追加失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
一時変数のインライン化(Inline Temp)とは
一時変数への参照を取り除くこと
ポイント
- メソッドの戻り値に一時変数が含まれている時(だけ)
- メソッドの抽出時の一時変数スコープ考慮の懸念をなくしておける
例
require "date"
def tokyo_olympic?
year = Date.today.year
year == 2019
end
puts tokyo_olympic?
↓
require "date"
def tokyo_olympic?
Date.today.year == 2019
end
puts tokyo_olympic?
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
チェーンが長すぎて分かりにくかったら更にメソッドの抽出となりそう