1つずつリファクタリング技法まとめ
個人的に簡単かつ取り入れ易いと思うものから
目的
すぐ引き出せるようにする
基本作業サイクル
- システムを動かして仕様を精査
- テストメソッドを作成
- テストの失敗を確認
- テストの成功を確認
- 小さい変更、随時テスト実行(失敗確認->成功確認)
- 最後テスト実行
- 最後動作確認
条件分岐の組み替え(Recompose Conditional)とは
言語独自の構文要素を使うこと
イディオム(条件などに使用できる記号)など完結に実現できるものを使う
ポイント
- 記述量が減る
- 誰がみても分かるかという意味ではRubyの習熟度に依存する部分がややある
例
- 三項演算子はイディオムのORの演算子を利用して表現できる
user.age = age ? age : '年齢不詳'
↓
user.age = age || '年齢不詳'
- returnはガード節(早期return)以外基本いらない
- 条件式の中行われている処理が1つだけならば、return if構文を使用できる
def talk(age)
if age < 2
'おぎゃー'
else
'話せるよ'
end
end
↓
def talk(age)
return 'おぎゃー'if age < 2
'話せるよ'
end
書籍情報
Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著),
長尾 高弘(訳), リファクタリング:Rubyエディション
https://amzn.to/2VlyWML
雑感
凝りすぎずにシンプルさと読み易さを意識する。