私が考えるレビューしやすい Pull Request の作成方法
ラブグラフエンジニアの関口です。今回の記事では私が考えるレビューしやすい Pull Request の作成方法に関してまとめていきます。
レビューがしやすい Pull Request を作成するべき理由
レビューしやすい Pull Request を作成することで、マージまでの速度が上がります。
マージまでの速度が上がることで事業が進むスピード、プロダクト品質が良くなる速度が上がります。
そのため、レビューしやすい Pull Request を作成することは大切であると考えています。
レビューがしやすい Pull Request を作成するための3つのポイント
1. 変更ファイル数が多すぎないか?
Pull Request を作成する前(もしくは実装に入る前)に確認したほうが良いことはタスクの粒度です。
タスクの粒度が大きすぎると1つの Pull Request で変更されるファイル数が多くなり、それだけでレビュアーの負荷が増えてしまいます。
変更ファイル数が10以上になる時は、機能自体を分割できないかを改めて考えます。
1つの機能を全て同じ Pull Request にまとめるのではなく、作業ごとに分割し、単体でリリースできる単位ごとに Pull Request をまとめるとレビュアーの工数も減ります。
そのため、レビューしやすい Pull Request を作成するためにはタスクの細分化も大切になると考えています。
2.概要欄を充実させる
個人的に一番大切だと思うことは Pull Request の概要欄を充実させることです。
概要欄にレビューに必要な情報を全て集約させることを意識しています。
デザイン案のリンクなど、仕様がまとまっている企画ドキュメントと重複する内容もありますが、Pull Requestの概要欄にまとめることで、簡単に遷移することができ、レビュー工数が下がると考えています。
具体的には以下の内容を記載しています。
- 機能が必要な背景
- 作業内容
- 動作確認した項目
- 実装の影響範囲
- 実装する上で悩んだポイント
- スクリーンショット(デザイン変更がある場合)
- 各種リンク
- タスクのチケットリンク
- 企画ドキュメントのリンク
- 仕様に関して相談したチャットなどがあれば、そのリンク
- figmaなどのデザイン案のリンク
チーム内でテンプレートを作成してその項目に沿って作成していくことも大切ですね。
私達のチームでは以下のようなテンプレートを利用しています。
3.レビュー依頼をする前のセルフレビュー
レビュー依頼を出す前にセルフレビューをすることも大切にしています。
概要欄は分かりやすいか、チームのコーディングルールに反しているものは無いか、影響範囲で抜け漏れている箇所は無いかなどを改めて確認していきます。
セルフレビュー項目を用意し、以前レビューでコメントをいただいたことに関して、同じコメントを貰わないように意識しています。
レビュー依頼をする前にセルフレビューを実施することで、実装時に気がつけなかったミスや、
より良い実装方法に気がつくことが出来ます。
セルフレビューをすることで、レビュー依頼をするまでのリードタイムは少し長くなってしまいますが、結果的にレビュアーの負担が減り、レビューするべき箇所に集中してもらえるのでセルフレビューは大切にしています。
自分のセルフレビュー項目を一部抜粋してご紹介します。
人によっては当たり前過ぎて確認するまでも無いと思われるような項目だと思います。
しかし当たり前の項目だとしても、急いでいたり、焦っていると対応を忘れることがあるため、レビューを出す前に一度これらの項目を確認しています。
コードの確認事項
- ルーティングの追加はabc順に並べられているか?
- schemafileのカラム追加はまとまりを意識して並べられているか?
- updateやsaveなどのレコード保存系のメソッドはsave!やupdate!などの例外が発生する形で利用しているか?
- N + 1 問題が起きていないか?
コード以外の確認事項
- file changed が多すぎないか? 10 files 以上あれば注意が必要
- Pull Request 作成時に assign yourself を押したか?
- デザインを大きく変更するタスクでは、スマホやPC画面以外にタブレット画面も表示確認をしたか?(スクショも添付する必要あり)
まとめ
今回は私が考えるレビューがしやすい Pull Request の出し方というタイトルで記事を書きました。
作業の粒度を細かくしたり、概要欄をまとめたり、セルフレビューすることは特別なことではなく、どれも当たり前と言ったら当たり前のことかもしれません。しかし、私は当たり前のことを当たり前におこなっていく凡事徹底がとても大切であると考えています。
今後も事業が成長するスピードを上げるために、レビューがしやすい Pull Request を作成していこうと思います。
Discussion