AIコードレビュー
AIにコードレビューを依頼することで、バグやセキュリティ問題を早期発見。一人開発でも品質を保てます。
レビューの依頼方法
基本的なプロンプト
以下のコードをレビューしてください。 [コードを貼り付け] 特に確認してほしい点: - セキュリティ上の問題 - パフォーマンス - 可読性 - ベストプラクティスに沿っているか
詳細なレビュー依頼
以下のFastAPIエンドポイントをレビューしてください。
```python
@app.post("/users")
def create_user(user: UserCreate, db: Session = Depends(get_db)):
db_user = User(email=user.email, password=user.password)
db.add(db_user)
db.commit()
return db_user
```
確認観点:
1. SQLインジェクション対策
2. パスワードの取り扱い
3. エラーハンドリング
4. 入力バリデーション
5. レスポンス形式
よくある指摘パターン
セキュリティ
問題のあるコード
password=user.password # 平文保存
query = f"SELECT * FROM users WHERE id = {id}"
改善後
password_hash=hash(user.password) query = select(User).where(User.id == id)
エラーハンドリング
問題のあるコード
def get_user(id):
return db.query(User).first()
# Noneの場合の考慮なし
改善後
def get_user(id):
user = db.query(User).first()
if not user:
raise HTTPException(404)
return user
パフォーマンス
問題のあるコード
# N+1問題
posts = db.query(Post).all()
for post in posts:
print(post.author.name)
改善後
# Eager Loading
posts = db.query(Post).options(
joinedload(Post.author)
).all()
Claude Code / Cursor でのレビュー
ファイル単位のレビュー
# Claude Code このファイルをレビューして # Cursor Ctrl+K → "Review this file for security issues"
変更差分のレビュー
# Claude Code git diff をレビューして、問題があれば指摘して # git diff の出力結果を貼り付けてもOK
セルフレビューチェックリスト
セキュリティ
- □ パスワードはハッシュ化されているか
- □ SQLインジェクション対策
- □ XSS対策
- □ 認証・認可は正しいか
- □ 機密情報はログに出ていないか
コード品質
- □ 命名は分かりやすいか
- □ 関数は適切な長さか
- □ 重複コードはないか
- □ エラーハンドリングは適切か
- □ 型定義は正しいか
パフォーマンス
- □ N+1クエリはないか
- □ 無駄なAPI呼び出しはないか
- □ 適切にキャッシュしているか
- □ 大きなデータを一度に取得していないか
メンテナンス性
- □ 必要なコメントはあるか
- □ マジックナンバーはないか
- □ テストは書けているか
- □ 設定値は環境変数化されているか
まとめ
- ✓ AIにコードレビューを依頼して品質向上
- ✓ セキュリティ、パフォーマンス、可読性を確認
- ✓ チェックリストでセルフレビューも
- ✓ 指摘を学びに変えてスキルアップ