ChatGPTで「コードレビュー」を効率化する方法|現場で使える実践テクニック

C
クリオ
Web制作ディレクター / フロントエンジニア

こんにちは!

今日は「ChatGPTで『コード レビュー』を効率化する方法」について解説します。

現場で起こる「コードレビューの時間圧力」

Web制作の現場で働いていて、ほんま困るのが「コードレビューの時間がない」という問題やん。
新人さんが書いたコードをチェックしたいけど、自分のタスクもあるし、クライアント対応もあるし…となると、ついつい表面的なチェックだけで済ませちゃったりするんです。

僕も昔は、後輩のコードを軽くスクロールして「いいね、マージしていいよ」みたいなことしてました。
でも数週間後に、その時のコードが原因でバグが発生。
ほんまに反省した経験があります。

現場あるあるをお話しすると、こんな悩みがよくあるんです。

  • 新人さんのコードは細かいチェックが必要だけど時間がない
  • セキュリティ関連の脆弱性を見落とすことがある
  • パフォーマンスの問題点に気づかない場合がある
  • コーディング規約の統一性をチェックするだけで疲れる

こういう時こそ、ChatGPTの出番なんです。
AIに「初期チェック」をさせることで、僕たちの時間を本当に大事な判断に使えるようになります。

ChatGPTをレビュー助手として活用する3つのポイント

ポイント1:「目的を明確に指定する」

ChatGPTにコードを丸ごと渡して「レビューして」と言うだけでは、めっちゃ効果が薄いです。
重要なのは「何をチェックしてほしいのか」を具体的に伝えることなんです。

例えば、こういう感じで指示するといいですよ。

  • 「パフォーマンスの問題をチェックしてください」
  • 「セキュリティ脆弱性があるかどうか確認してください」
  • 「可読性を損なうコードがあったら指摘してください」
  • 「メモリリークの可能性がないか調べてください」

このように焦点を絞ると、ChatGPTは本当に精度の高い指摘をしてくれるんです。

ポイント2:「コンテキストを与える」

単なるコードの断片より、「どういう目的のコード」「どのプロジェクト」「どのフレームワーク」といった背景情報があると、ChatGPTの提案がめっちゃ実践的になります。

例えば、React案件なら「React 18を使っています」とか、Next.jsなら「App Router を使っています」みたいに伝えるといいですよ。
そうするとそのフレームワークに最適な指摘がもらえるんです。

ポイント3:「複数回のやり取りを活用する」

最初の指摘をもらった後、「このコードを改善するとしたら、具体的にどう書きますか?」とか「なぜそうするんですか?」と深掘りすることで、学習効果も高まります。
これは後輩指導という観点でも、ほんま有効なんです。

実際のコード例と実践的なプロンプト

実例:React コンポーネントのレビュー

こんなコンポーネントがあるとします。


const UserProfile = ({ userId }) => {
  const [user, setUser] = React.useState(null);
  const [loading, setLoading] = React.useState(false);

  React.useEffect(() => {
    setLoading(true);
    fetch(/api/users/${userId})
      .then(res => res.json())
      .then(data => {
        setUser(data);
        setLoading(false);
      })
      .catch(err => console.log(err));
  }, [userId]);

  if (loading) return <div>Loading...</div>;
  if (!user) return <div>Not found</div>;

  return (
    <div>
      <h1>{user.name}</h1>
      <p>{user.email}</p>
    </div>
  );
};

このコードをChatGPTに送る時は、こんなプロンプトを合わせます。

「このReact 18コンポーネントを以下の観点からレビューしてください。
1. パフォーマンスの問題
2. 潜在的なバグやエラーハンドリングの不足
3. ベストプラクティスからの逸脱

それぞれの問題に対して、改善案もお願いします。」

そうするとChatGPTは、こんな感じの指摘をしてくれるはずです。

  • useEffectの依存配列にuserIdしかないのに、クリーンアップ処理がない(コンポーネント アンマウント時にメモリリークの可能性)
  • エラーハンドリングがconsole.log(err)だけで、ユーザーへのエラー表示がない
  • ローディング中とエラー状態の両立が可能な状態になっている(状態管理が不完全)
  • APIレスポンスの型チェックがない

こういった指摘って、本人が気づくまでには時間がかかるんですよ。
でもChatGPTならパッと指摘してくれる。
だから僕たちはそれを見て「あ、そっか」と納得して、改善方法を聞くみたいな流れができるんです。

実践的なプロンプトのテンプレート

僕が実際に使ってるテンプレートを共有しますね。

「以下のコードについて、{チェック項目}をレビューしてください。
プロジェクト環境:{フレームワーク}、{バージョン}

{コード}

各問題について:
1. 何が問題なのか
2. なぜ問題なのか
3. 具体的な改善コード

を教えてください。」

このテンプレートを使うと、ChatGPTの回答がほんま構造化されて、活用しやすくなるんですよ。

レビュー結果をチーム全体で活用する

ChatGPTの指摘結果って、後輩さんへの学習教材にもなるんです。
「ChatGPTがこう指摘してるから、こういう点に気をつけようね」という話ができます。

これまでは「なぜこう書くのか」という理由を説明するのに時間がかかってたけど、ChatGPTが「セキュリティ上の