6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コードレビューで見込める効果とレビュイーとして意識すること

「Looks Good To Me みんなのコードレビュー」を読み、これまでの開発経験と照らし合わせながら、コードレビューにおいて特に重要だと感じた点をまとめました。本記事では、レビュイー(レビューを受ける側)の視点から、効果的なコードレビューを実現するために意識すべきポイントを整理しています。

コードレビューで見込める効果

品質向上

  • 不具合の早期発見: 複数の目でコードをチェックすることで、バグや問題を早期に発見
  • 可読性への意識向上: レビューを前提とすることで、読みやすいコードを書く意識が高まる

チームのコードの理解度向上

コードレビューを通じて、チーム全体でコードベースの理解を深め、属人化を防ぐことができます。

この記事では、レビューの仕組みを表す言葉として**PR(プルリクエスト)を使用しています。GitLabを使用している方はMR(マージリクエスト)**に読み替えてください。

また、ツール特有の使い方には言及せず、コードレビューというプロセスの考え方に触れています。

レビュイーとして意識すること

よいPRとは

良いPRの条件として以下の5つを挙げます。

  1. チケットに関する必要な変更だけが含まれ、関係のない変更が最小限
  2. 変更されたコードが500行以下、変更ファイル数が20未満
  3. 30分程度の短時間でレビューできる
  4. レビュワーに必要な情報が添えられている
  5. コードの変更について説明できる、または説明なしで理解できる

1. チケットに関する必要な変更だけが含まれ、関係のない変更が最小限

実装中に「気になる箇所を直しておこう」という経験は多いでしょう。しかし、関係のない変更が多いとレビュワーは「本実装に影響があったのか?」と都度考える必要があります。

レビュワーは別の実装を中断してレビューすることが多く、すでに脳のメモリを使っています。余計なコンテキストを省き、レビュワーがスムーズにレビューできるよう、変更は本筋のみに絞りましょう。

2. 変更されたコードが500行以下、変更ファイル数が20未満

コードの変更行数とファイル数を最小限にすることで、PRのマージまでのスピードを早め、他のブランチとのコンフリクトリスクを減らせます。

3. 30分程度の短時間でレビューできる

重要なのは「レビュワーが30分で納得感を持って承認できるように準備すること」です。つまり**「単位時間あたりのレビュー品質を高めること」**が目標です。

時間が長くなりすぎると、レビュワーの集中力が落ちてしまうため、30分程度を目指します。

4. レビュワーに必要な情報が添えられている

必要な情報を整理することで、レビュー時間を短縮し、今後の開発でのコミュニケーションにも活用できます。

コードだけには含まれていないドメイン情報(実装思想、エンドユーザーとのやり取りなど)を適切に伝えることで、未来の開発にも活かせるでしょう。

5. コードの変更について説明できる、または説明なしで理解できる

AIを使うようになって実装スピードは向上しましたが、自身で実装していないコードも増えました。コードレビューでは「意図がわからないコード vs 新しい提案」を比較するため、実装者は自身のPRについて説明できるよう理解を深めることが重要です。

ただし、AIによる実装スピード向上のメリットも大きいため、テストで品質を担保するなど、品質とスピードのバランスを取ることが大切です。

まとめ

効果的なコードレビューは、不具合発見だけでなく、チーム全体の技術力向上とコードベースの品質向上に貢献します。レビュイーとして上記の5点を意識することで、より良いコードレビューサイクルを実現できるでしょう。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?