レビュー依頼前のチェックリスト
最近「考えが及ばなかった」「気づいていたのにできていなかった」という事がたびたびありました。
これは漠然と回避できるものではないと感じたため、事前に確認するリストを作ることでなるべく自己解決してみようと思います。
今のところ、考えているのは以下の点です。
1.rubocopとテストをとおしているか
2.1で修正できない箇所をチェック
3.プルリク作成時、file changeでは必要な差分のみ確認できるか
4.わかりやすい命名になっているか
5.他に適切なメソッドがないか・もっとわかりやすくかけないか
6.処理回数は適切か・不要なクエリ発行はないか
7.エラーが発生するケースは考えられないか(レシーバがnilの場合など)
8.メソッド名と処理内容は一致しているか
9.MVCや各メソッドの責務は妥当か
10.今回の変更の影響範囲すべてを確認できているか
上記については、取り組みながら内容を精査していこうと思います。
firstメソッド
Rubyでは、配列の最初の要素を取り出すメソッドです。
Railsでは、firstはデータベースからオブジェクトを取り出すための検索メソッドの一つです。
デフォルトでは、主キー順の最初のレコード(つまりid:1)を取り出します。
レコードがない場合はnilを返します。
first | Rails ガイド Active Recordクエリインターフェイス
&. ぼっち演算子
レシーバがnilの場合に、エラーではなくnilを返してくれます。
以前も記録した気がしますが、今回失念していたので再度確認。
>> current_customer = nil => nil >> name = current_customer.name (irb):6:in `<main>': undefined method `name' for nil:NilClass (NoMethodError) from /Users/xxxxxxxx/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/irb-1.8.1/exe/irb:9:in `<top (required)>' from /Users/xxxxxxxx/.rbenv/versions/3.2.2/bin/irb:25:in `load' from /Users/xxxxxxxx/.rbenv/versions/3.2.2/bin/irb:25:in `<main>' >> name = current_customer&.name => nil >>
CI/DC
CIはContinuous Integration(継続的インテグレーション)の略で、毎回必要なテストを自動化する処理などが含まれます。
DIはContinuous Delivery(継続的デリバリー)を意味し、ユーザーに継続的にサービスを提供することをいいます。