0%
バイブコーディング#コードレビュー#AI#品質向上

AIでコードレビュー|品質向上と学習を同時に実現する方法

AIを使ったコードレビューの方法。レビュー依頼の仕方、チェックポイント、学習への活用を解説。

||6分で読める

AIでコードレビュー

一人で開発していても、AIがレビューしてくれる。

AIコードレビューのメリット

従来のレビュー

・レビュアーの時間が必要
・フィードバックまで時間がかかる
・人によって指摘が違う

AIレビュー

・いつでも即座にレビュー
・一貫した基準
・客観的な指摘
・学習にもなる

レビュー依頼の仕方

基本形

このコードをレビューしてください。
特に以下の観点でお願いします:
- バグの可能性
- パフォーマンス
- 可読性
- セキュリティ

[コードを貼り付け]

具体的な観点を指定

このAPIエンドポイントをレビューして。
特にセキュリティの観点で問題がないか確認したい。

- 認証は適切か
- 入力バリデーションは十分か
- SQLインジェクションの可能性はないか

チェックポイント別レビュー

バグ・エラー

「このコードにバグの可能性はある?」

チェック項目:
・null/undefinedの処理
・境界値の処理
・エラーハンドリング
・型の整合性

パフォーマンス

「このコードのパフォーマンスを改善できる?」

チェック項目:
・不要な再計算
・N+1問題
・メモリリーク
・非同期処理の最適化

可読性

「このコードをより読みやすくできる?」

チェック項目:
・変数名・関数名
・コメントの適切さ
・関数の分割
・一貫性

セキュリティ

「セキュリティの問題はある?」

チェック項目:
・入力バリデーション
・認証・認可
・機密情報の扱い
・XSS/SQLインジェクション

実践例

関数のレビュー

// レビュー対象
function getUserData(id) {
  const user = db.query(`SELECT * FROM users WHERE id = ${id}`)
  return user
}

AIのレビュー結果:

問題点:
1. SQLインジェクションの脆弱性
   → プレースホルダを使用してください

2. エラーハンドリングがない
   → try-catchを追加してください

3. 型が不明確
   → TypeScriptで型を定義してください

改善案:
async function getUserData(id: string): Promise<User | null> {
  try {
    const user = await db.query(
      'SELECT * FROM users WHERE id = $1',
      [id]
    )
    return user
  } catch (error) {
    console.error('Failed to get user:', error)
    return null
  }
}

PRレビュー

このPRの変更をレビューして。
変更点:
- 新しい認証ミドルウェアを追加
- ユーザーAPIを更新
- テストを追加

[diffを貼り付け]

学習としての活用

なぜその指摘なのか聞く

「なぜこの書き方がよくないの?」
「他の方法と比べてどういうメリットがある?」
「どんな場面でこの問題が起きる?」

ベストプラクティスを学ぶ

「この種の処理のベストプラクティスは?」
「有名なライブラリではどう実装されてる?」
「このパターンの名前は何?」

改善のプロセスを理解

「この改善を段階的に進めるとしたら?」
「優先度が高いのはどの修正?」
「この修正で他に影響が出る箇所は?」

自動化

コミット時にレビュー

# pre-commitフックでAIレビュー
# .git/hooks/pre-commit

echo "AIレビューを実行中..."
# 変更されたファイルをAIに送信
git diff --staged | ai-review

CI/CDに組み込み

# GitHub Actions
- name: AI Code Review
  run: |
    # PRの差分をAIに送信
    gh pr diff ${{ github.event.pull_request.number }} | ai-review

注意点

AIの限界

・プロジェクト固有のルールは知らない
・ビジネスロジックの正しさは判断できない
・すべてのバグを見つけられるわけではない

人間のレビューも必要

・要件との整合性
・チームのコーディング規約
・ビジネス上の判断

次のステップ

シェア:

参考文献・引用元

バイブコーディングの他の記事

他のカテゴリも見る