1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(パターン追加失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
引数の追加(Add Parameter)とは
メソッドを変更するにあたって以前渡されていなかった情報が必要になり、引数を追加するもの
ポイント
- 他の選択肢があることが多く、その場合は他の選択肢を選択した方が良い
- 既存で引数がある状態から追加する場合、「引数オブジェクトの導入」が適用できないか検討する
- 同じシグネチャのメソッドが存在しないか確認する(同じように追加する必要がある可能性がある)
例
def load_file
local = make_local_file
load(local)
end
↓
def load_file(local)
load(local)
end
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
処理の債務的に外から引数として渡るべき、という時くらいでそれ以外はもう少し大枠の設計に改善点がありそう