リーダブルコード読書メモ ~その3~
これの続きです。今回は条件文をわかりやすくどうするか、あまりネストをできるだけ浅くしようという、話です。
- 比較文の書き方
- 左側に調査対象、右側に比較対象、とするとよい
Ruby
hogeflag == true
fuga < 10
条件文
ネストは浅くする
- 特に条件分岐が増えると結構つらい。深くなりそうな場合は既存ロジックも含めて以下を検討する
- 失敗ケースは早く返す(ガード節をうまく使う)
- continueを使う
- ガード節について
- 処理の対象外とするケースを関数やループの先頭に集めてreturnやcontinue、breakで抜けるコーディングテクニック
- 特に条件分岐が増えると結構つらい。深くなりそうな場合は既存ロジックも含めて以下を検討する
if !hoge fuga = 0 end if !hogehoge fuga = 0 end
上記を以下のようにするとネストがなくなり、わかりやすくなる
fuga = 0 if !hoge fuga = 0 if !hogehoge
終わりに
比較や条件文については要件によっては複雑になるのは仕方ないですが、今回紹介したような形でできる限りわかりやすく書くことを意識したいですね。。。