🦖

コードレビューを楽しむコツ

に公開

はじめに

先日参加したRubyKaigi 2025で、コードレビューに関する本を購入しました。
この本を読んで学んだことを実際に試しながら、さらに理解を深めているところです。

そんな中で目にしたのが、「コードレビューが怖い」「嫌われる人の特徴」といった記事でした。

https://qiita.com/emjo1804/items/48f6e78237a04684ab38
https://techblog.gmo-ap.jp/2017/10/11/コードレビューを怖がっていた新卒エンジニアが/

確かに、レビューを受ける立場では、指摘が怖く感じられたり、必要以上に気を使ってしまうこともあるかもしれません。
ですが私は、コードレビューは決して「怖いもの」ではなく、むしろ楽しめるものだと感じています。

そこで今回は、コードレビューを楽しむための工夫や向き合い方について私なりに考えてみたことをまとめていきます。

コードレビューで意識したいこと

以下のポイントを意識することで、より良いレビュー体験につながり、レビューがもっと楽しく、スムーズになります。

  • コミットメッセージは適切か
  • タイトルとディスクリプションは適切か
  • レビューに出す前の最終チェック
  • レビューを受けるときの姿勢

では、1つずつ見ていきましょう。

コミットメッセージは適切か

コードの変更履歴をたどるとき、最初に目にするのがコミットメッセージです。
どんな目的で、どんな変更を行ったのかが一目でわかるメッセージになっていれば、コードの意図をすばやく理解する手助けになります。

特に慣れないうちは、小さな単位でコミットを分け、1つの目的ごとに意味のあるメッセージをつけることをおすすめします。
レビュアーは、変更内容をひとまとまりとして捉えやすくなり、確認の手間や認知負荷が大きく軽減されます。

私は普段、以下の記事を参考にしてコミットメッセージを作成しています。
https://qiita.com/muranakar/items/20a7927ffa63a5ca226a
変更内容ごとに丁寧にコミットを分けておくことで、レビュアーにとって確認しやすいPRになり、やり取りもスムーズに進みやすくなります。
また、あとから自分自身で履歴を追う際にも、「どこで何をしたのか」が明確になり、非常に便利です。

タイトルとディスクリプションは適切か

タイトルはPRの顔

タイトルは、PRの第一印象を決める重要な要素です。
どんな目的で、どんな実装をしたのかを簡潔かつ正確に伝える必要があります。

目的や内容がすぐに読み取れるタイトルにしておくと、GitHubのPR一覧画面を見ただけで、そのPRの概要が一目で把握できます。
レビュアーが忙しくてレビューに時間を割けないときでも、タイトルを見れば「これはすぐ確認できそうだ」と判断しやすくなります。
良いタイトルをつけることは、レビュアーのためになるだけでなく、自分のためにもなるのです。

例えば、
悪い例 🙅‍♂️:「エラーの際にフラッシュメッセージを表示」「admin画面でボタン押下時の二重送信を抑制」
良い例 🙆‍♂️:「ユーザー登録に失敗した際にフラッシュメッセージを表示させる」「admin画面でメールの送信ボタンを二重に押せないようにする」

悪い例では「何のための修正か?」「どの部分の変更か?」が不明確で、PRを開かないと内容がわかりません。
一方、良い例は対象・目的・処置が明確で、内容を読み取るのに余計なコストがかかりません。

「どこで」「なにを」「なぜ」行ったのかが簡潔に伝わるタイトルを心がけることで、レビューの質もスピードも向上し、開発全体の流れが良くなります。

初見でも伝わるディスクリプションを書くには

実装者にとっては当たり前の内容でも、レビュアーは背景や目的を知らない状態でPRを開きます。
その情報ギャップを埋めるのが、ディスクリプションの大きな役割です。

ここで意識すべきなのは、「レビュアーが初見でも内容を理解できるか」という視点です。

特に次のような情報を意識して書くと、レビュアーがスムーズに内容を理解できます。

  • なぜこの実装が必要なのか(背景・課題)
  • なぜこの設計にしたのか(方針・思想)
  • 実装によって得られる成果(期待する効果)
  • 動作確認の手順(レビュー時の参考情報)

ディスクリプションは、単なる「説明欄」ではなく、レビュアーとのコミュニケーションの場です。
前提や背景をしっかり伝えたうえでコードを読んでもらうことで、レビューがより円滑になります。

期限を書く

もうひとつ私が実践しているのは、期限を明記することです。
ディスクリプションに「いつまでにマージしたいか」といった期限を書いておきます。

期限が明記されていると、レビュアーもタスクの優先度を判断しやすくなります。
「急ぎなのか」「後回しでも問題ないのか」といった些細なニュアンスも、認識のズレを防ぐための重要な手がかりになります。

小さなことでも積極的に共有することで、スムーズにレビューを進めることができます。

伝わるディスクリプションの構成例

## 期限
◯月△日までにマージしたい急ぎのPRです。

## 概要  
○○ページで表示されるボタンがクリックできない不具合を修正しました。

## 背景  
先週のリリース以降、ユーザーから「ボタンが反応しない」との報告がありました。  
調査の結果、styleの指定漏れが原因でボタンが無効になっていました。

## 動作確認方法  
ローカルで `yarn dev` を起動し、http://localhost:3000/〇〇 でボタンが押せることを確認してください。

レビューに出す前の最終チェック

レビューに出す前に、最低限チェックしておきたいポイントがあります。
どれも一見当たり前のように見えますが、実際の開発現場では意外と忘れがちです。

しかし、こうした基本的な確認を丁寧に行うことで、レビュアーの負担を最小限に抑えることができ、チーム全体のレビュー効率も格段に上がります。

どんなに小さな変更でも、「レビュアーにとって確認しやすい状態」を意識することで、レビューの質と速度は大きく変わってきます。

以下のポイントを事前に確認しておくことで、レビューをスムーズに進めることができます。

  • CIがすべて通っているか
  • 1つの実装に絞られているか
  • 動作確認をしているか

では、これらを1つずつ見ていきましょう。

CIがすべて通っているか

CIとは、CI(Continuous Integration)の略称で、以下のような意味を持ちます。

CI(Continuous Integration)
コードの変更を、チームの共有リポジトリに対して自動かつ頻繁に統合(マージ)する開発手法です。
コードをリポジトリにコミットするとき、コミットによってエラーが発生しないように、コードのビルドとテストを継続的に行うことができます。 テストには、コードの文法チェッカー(スタイルフォーマットをチェックする)、セキュリティチェック、コードカバレッジ、機能テスト、その他のカスタムチェックを含めることができます。

https://docs.github.com/ja/actions/about-github-actions/about-continuous-integration-with-github-actions

チームでCIが導入されている場合、PRを出す前にCIが問題なく通っているかを確認することは非常に重要です。

CIが失敗している状態でレビュー依頼を出してしまうと、レビュー前にテストエラーやビルドエラーの対応が必要になり、レビュアーの時間を無駄にしてしまうこともあります。
「CIが通っていることを確認してからPRを出す」という最低限のマナーを守ることで、レビューを円滑に進めることができます。

確認の際は、GitHubなどのツールで表示されるFiles changedChecksタブを活用すると見落としが防げます。
これらのタブにはテストやビルドの結果、エラーや警告などが詳細に表示されるため、コードが正しく動作するかどうかのチェックポイントとして非常に有効です。

1つの実装に絞られているか

どのプロジェクトにおいても、1PR=1つの目的を基本とするのが望ましいです。
たとえば、「リファクタリング」と「バグ修正」は、それぞれ別のブランチ・別のPRに分けて作業するのが原則です。
そうすることで、「このPRでは何を実装したのか」が明確になり、レビュアーの認知負荷を減らすことができます。

複数の目的が混在したPRは、レビュアーにとって「そのPRが何を目的とした修正か」が曖昧になりやすく、結果として指摘漏れや誤解を招く原因になります。
また、マージ後にバグが起きた場合でも、原因箇所の特定が難しくなってしまいます。

後戻りのコストを減らすためにも、「1つの目的に絞ったPR」を意識することが大切です。

動作確認をしているか

コードを変更したあとは、必ず自分で動作確認を行ってからPRを出すようにしましょう。
動作確認は、レビューの準備が整っていることを示す最低限のマナーでもあります。

動作確認をせずにレビューに出してしまうと、「まず不具合の修正から」という無駄なラリーが始まり、本来指摘すべきだった箇所を見逃してしまう原因にもなります。
結果的にレビューの精度が落ち、レビューの効率が下がってしまいます。

レビューを受けるときの姿勢

最後に意識する必要があるのが、レビューを受けるときの姿勢についてです。
以下のポイントを意識すると、コードレビューがさらに楽しくなります。

  • コメントを否定的に受け取らない
  • 言いなりにならない

1つずつ見ていきます!

コメントを否定的に受け取らない

まず理解しておきたいのは、「指摘 ≠ 否定」であるということです。

たとえ少し言い方がきつく感じる人がいたとしても、「私のことが嫌いなのかも」「人格を否定されている」とは思わないことが大切です。
指摘は、成長するチャンスだと捉えていきましょう。

最初はできないのが当たり前です。
レビューで指摘を受け、それを次に活かしていく。
次に同じ指摘が来なければ、それは成長の証です。

また、文章に書かれている以上のことを深読みしすぎないことも大切です。
テキストベースのやりとりでは、表情や声のトーンが伝わらないため、質問の意図がわからないと、つい攻撃的に感じてしまうこともあります。

コメントに対して否定的にならず、前向きな材料として受け取る意識を持ちましょう。
もし質問の意図がわからなかった場合は、
「この質問は、〇〇という意味でしょうか?」といった形で確認してみると、スムーズにコミュニケーションできます。

言いなりにならない

指摘に対して、すべてをそのまま受け入れるのではなく、自分の意図を持って受け答えすることも大切です。

レビュアーも人間です。ときには指摘内容が間違っていることもあります。
指摘を受けたあと、自分でその内容を調べてみて、納得できるかどうかを確認する姿勢も大切です。

その変更に明確な理由がある場合は、
「〇〇という理由でこのように実装していますが、どう思いますか?」といった形で対話を試みましょう。
こうした対話や議論が、チーム全体の理解や共通認識を深めるきっかけにもなります。

指摘をそのまま鵜呑みにせず、自分の判断と責任で変更を行う姿勢を大切にしましょう。

まとめ

今回は、コードレビューを楽しむための工夫や向き合い方についてまとめました。

  • コミットメッセージは適切か
  • タイトルとディスクリプションは適切か
  • レビューに出す前の最終チェック
  • レビューを受けるときの姿勢

上記のポイントを意識することで、レビューはただ指摘される場から、学びと成長の場へと変わっていきます。
コードレビューを「楽しい」と思えるようになれば、きっと開発ももっと好きになれます。
自分なりの工夫を積み重ねながら、一歩ずつ成長していきましょう!

ここまで読んでいただき、ありがとうございました。
ご質問やご感想がありましたら、お気軽にコメントしていただけると嬉しいです!🙌

参考

https://www.shoeisha.co.jp/book/detail/9784798186009
https://qiita.com/marumaru0113/items/c53db580b812f8f6d4da
https://qiita.com/emjo1804/items/48f6e78237a04684ab38
https://techblog.gmo-ap.jp/2017/10/11/コードレビューを怖がっていた新卒エンジニアが/
https://qiita.com/muranakar/items/20a7927ffa63a5ca226a
https://docs.github.com/ja/actions/about-github-actions/about-continuous-integration-with-github-actions
https://qiita.com/mackeyTA/items/8d9017883f440f2bf157

Discussion