【Rails】コードレビューですぐに役立つTips集

レビューする時もされる時も、似たような箇所が指摘されてきたので、まとめてみました！
（リーダブルコードも買ったから、あとで読んで追記していきたい。）


## 【Tips1】 命名大丈夫？
https://qiita.com/jnchito/items/459d58ba652bf4763820

## 【Tips2】 説明的なコメント❌WHYに答えるコメント⭕️
https://qiita.com/jnchito/items/f0d90af4ed44b7484103

## 【Tips3】 エラーハンドリング足りてる？
- 関連質問
    - そこのfindでnilが渡されても大丈夫？
    - params[:hoge]がnilでも大丈夫？
    - rescueしなくていいの？
- 対処法
    - `return if hoge.nil?　`などで、途中で返す
    - `hoge&.id`を用いる
    - [Railsアプリにおけるエラー処理の考え方](https://qiita.com/jnchito/items/3ef95ea144ed15df3637)

## 【Tips4】 パフォーマンス大丈夫？
- 関連質問
    - mapで回す必要ある？
    - flattenじゃないとだめ？
    - N+1問題起きてない？
    - countのかわりにsizeを使お
    - exist?のかわりにpresent?を使お
    - allのかわりにfind_eachを使お
    - mapじゃなくてpluckでよくない？(使い分けよ）
    - キャッシュや非同期処理の導入を検討しよ
    - パーシャル（部分テンプレ）を繰り返しrenderする時、eachのかわりにcollection使お
    - メモ化しよ（キャッシュの利用）
    - etc
- 対処法
    - [mapで回す必要ある？](https://qiita.com/yuporon/items/9cee8cb71840b444fe41)
    - [[Ruby] 配列の結合と展開](https://qiita.com/yuporon/items/5756cb2ec82d77c6a69a)
    - [[Ruby] 配列の結合について](https://qiita.com/yuporon/items/c420ebf650eaeda6ac93)
    - [N+1を改善する](https://zenn.dev/nakasan/articles/45e60d2804b1bb#%E3%80%90tips1%E3%80%91-n%2B1%E3%82%92%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B)
    - [countではなくてsizeを使用する](https://zenn.dev/nakasan/articles/45e60d2804b1bb#%E3%80%90tips2%E3%80%91-count%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%81%A6size%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B)
    - [exist?の使用を控える](https://zenn.dev/nakasan/articles/45e60d2804b1bb#%E3%80%90tips3%E3%80%91exist%3F%E3%81%AE%E4%BD%BF%E7%94%A8%E3%82%92%E6%8E%A7%E3%81%88%E3%82%8B)
    - [allのかわりにfind_eachを使お](https://zenn.dev/nakasan/articles/45e60d2804b1bb#%E3%80%90tips4%E3%80%91all%E3%81%A7%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E7%B5%90%E6%9E%9C%E3%82%92each%E3%81%A7%E5%9B%9E%E3%81%95%E3%81%AA%E3%81%84)
    - [【Rails】メモリや実行時間を意識したpluckとmapの使い分け](https://nishinatoshiharu.com/ruby-map-pluck/)
    - [不必要なActive Recordオブジェクトの生成](https://zenn.dev/nakasan/articles/45e60d2804b1bb#%E3%80%90tips5%E3%80%91%E4%B8%8D%E5%BF%85%E8%A6%81%E3%81%AAactive-record%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E7%94%9F%E6%88%90)
    - [キャッシュや非同期処理の導入を検討する](https://zenn.dev/nakasan/articles/45e60d2804b1bb#%E3%80%90tips6%E3%80%91-%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%82%84%E9%9D%9E%E5%90%8C%E6%9C%9F%E5%87%A6%E7%90%86%E3%81%AE%E5%B0%8E%E5%85%A5%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%99%E3%82%8B)
    - [Railsアプリが爆速になるパフォーマンスチューニング集(テーブルデータのキャッシュ化
, モデルのバリデーション無効化)](https://blog.furu07yu.com/entry/rails-performance-tuning-tips)
    - [改善ツール1](https://tech.andpad.co.jp/entry/2021/12/16/110000)
    - [改善ツール2](https://qiita.com/yaotti/items/f6ab4cf3c8541fc4da83)
    - [パーシャルをrenderする際のパフォーマンスに関する注意点
](https://qiita.com/itmammoth/items/612efc6ad3280349b7e1)
    - [メモ化する](https://qiita.com/Marusoccer/items/a903c5efad14314c0f2a#5-%E3%83%A1%E3%83%A2%E5%8C%96%E3%81%99%E3%82%8B)

# 【Tips5】 その他
https://qiita.com/jnchito/items/dedb3b889ab226933ccf

https://zenn.dev/universato/articles/20201210-z-ruby

# 参考記事
https://qiita.com/jnchito/items/459d58ba652bf4763820

https://qiita.com/jnchito/items/f0d90af4ed44b7484103

https://qiita.com/jnchito/items/3ef95ea144ed15df3637

https://nishinatoshiharu.com/ruby-map-pluck/

https://zenn.dev/nakasan/articles/45e60d2804b1bb

https://blog.furu07yu.com/entry/rails-performance-tuning-tips

https://tech.andpad.co.jp/entry/2021/12/16/110000

https://qiita.com/yaotti/items/f6ab4cf3c8541fc4da83

https://qiita.com/itmammoth/items/612efc6ad3280349b7e1

https://qiita.com/Marusoccer/items/a903c5efad14314c0f2a

https://qiita.com/jnchito/items/dedb3b889ab226933ccf

https://zenn.dev/universato/articles/20201210-z-ruby