1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(パターン追加失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
引数の削除(Remove Parameter)とは
メソッド本体が引数を使わなくなり、引数を削除するもの
引数の追加の逆
ポイント
- 必要じゃなくなったものは消す。
- インスタンス変数として扱うべきでないか検討する
- 同じシグネチャのメソッドが存在しないか確認する(同じように削除する必要がある可能性がある)
例
def setting(url, id, password, date, logger)
@date = date
@logger = logger
login = {
url: url,
id: id,
password: password
}
end
↓
def initialize(url, id, password, date, logger)
@date = date
@logger = logger
end
def setting(url, id, password)
login = {
url: url,
id: id,
password: password
}
end
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
「引数の追加」と「引数の削除」と「引数オブジェクトの導入」は一度にまとめて行えそう