1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(パターン追加失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
設定メソッドの削除(Remove Setting Method)とは
不要なsetterを削除すること
フィールドの情報を書き換えられたくない(べきでない)場合、それを自明にすること
ポイント
- クラスの作成時に暫定的に追加していた記述を見直す。
- setterが行えることによって起き得る弊害を考える。
例
class Person
attr_accessor : relatives
def initialize(args)
@relatives = args[:relatives]
end
end
↓
class Person
attr_reader : relatives
def initialize(args)
@relatives = args[:relatives]
end
end
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
使い易さは汎用性だけではないことをしっかり念頭におく