読みやすい条件の書き方にする
ビューで 'Loading...' という文言を表示させる条件を、以下のように書いてしまっておりました。
- unless (@menus.include?(@menus_last) || @menus.length == 0)
.page-load-status
.infinite-scroll-request
| Loading...
自分でもこのunless文を書くにあたって、ベン図を使いながら考えないと分からないくらい、直感的でない書き方をしておりました。
このコードをレビューもらった際、どう書くべきかについてアドバイスを頂きました!!
具体的には、以下のような内容です。
(本当はもっと具体例交えてわかりやすく丁寧に書いてもらいました)
- unlessに複数条件設定すると可読性が下がる・理解しづらいのと保守性もいまいちなので、複数条件使うときはifに直した方が良い
- ActiveRecordのメソッドを使ってスッキリ書けるなら書く
- 好みと肌感覚的な部分になるが、viewのロジックが複雑になった場合はhelperに移すのが良い
実際にアドバイスをいただいた後書き直したものが以下です。
- if @menus.exclude?(@menus_last) && @menus.present?
.page-load-status
.infinite-scroll-request
| Loading...
初めは自分でもベン図を書かないと理解しづらかった条件文が、直感的にわかるようになりました!
スッキリかけたので今回はヘルパー化はしませんでした。
自分にも他人にも読みやすいコードを書いていくよう意識していきたいです!!