Qikuyueser.com

AI が書いたコードをレビューする:「正しそうで壊れる」を先に探す

収録 2026-11-05

AI コードの誤りは文法ではなく、もっともらしい前提にある。

このコードは AI が生成しました:[コード/説明]。「正しそうで正しくない」観点でレビューしてください:1)検証されていない前提(入力範囲、呼び出し順、外部状態)を挙げる;2)エラーにならず結果だけが狂う箇所を探す;3)エラー処理をしているように見えて、実は正常系だけ扱っている分岐を指摘する;4)フレームワークの作法に沿う部分と、存在しない API を補っただけの部分を分け、後者は公式資料で確認するよう示す;5)必ず足すテストケースと、それぞれが捕まえる誤りを書く。コード全体の書き直しは不要。
当サイトオリジナル

中国語の原文

置き換えるプレースホルダー 1

括弧の中をご自身の情報に置き換えてから送ってください。

  • [コード/説明]
使い方

AI コードで怖いのは、明らかに間違っていることではなく、もっともらしく間違っていること。

こう変えてみる

  • コードを書く前に要件と制約を復唱させる。
  • 全体書き換えではなく、最小の変更とロールバック方法を出させる。

得られる成果物

  • そのまま使える最小変更(コピー可能なコード)
  • 影響範囲:変更ファイルと追従が必要な呼び出し元

よくある失敗

  • 一度に十ファイル変更させ、何が原因か分からなくなる。
  • エラーだけ貼ってコードとバージョンを省くと、使えない修正が返る。

出力のチェック

  • 変更は動いて戻せて、無関係なコードに手を入れていない。
  • 境界条件(空・巨大・同時実行)が説明かテストで押さえられている。

使いどころと注意

  • 向いている用途:要件と制約を復唱させてから、最小限の動く変更を出させる。
  • 注意:エラーにはバージョンと最小再現を添える。無いと一見もっともらしいが合わない修正が返る。

向いている場面

  • コードは動きテストも通るが、何かが引っかかる。とくに AI が一度に書いた実装のとき。
  • 同僚や AI の変更をレビューする立場で、相手は自信がある。こちらは「もっともらしい」と「本当に安全」を分ける必要がある。

向いていない場面

  • コードが動かない:まず動かしてからレビューする。
  • 命名やインデントを揃えたいだけ:lint や formatter のほうが、人に一行ずつ見させるより確実。

例

入力
AI が生成した一覧 API:`page = int(request.args.get("page", 1))`、続いて `offset = page * size`、`size` を SQL の LIMIT にそのまま文字列連結。
得られるもの
「正しそうで正しくない」点を二つ指摘する:1)page の基準が未定義で、0 起点だと最初のページを飛ばす——規約を明記し境界を検証する;2)size に許可リストも上限もなく、巨大値・負値・注入片を渡せる——LIMIT は文字列連結にしてはいけない。加えて空結果と範囲外ページの挙動が未定義であることも補う。各項目に発火する入力と最小の修正を書き、命名や整形には触れない。

よくある誤用

  • 「AI のコードに問題がないか見て」とだけ送る:意図も実行環境もなく、汎用チェックリストしか返らない。
  • そのまま書き直させる:検証できるレビュー意見ではなく、別のコードが出てくる。

こう変えると効く

  • 「データ誤り・セキュリティ・静かな失敗につながるものだけ報告し、それ以外は黙る」と添えると、水増しが大きく減る。
  • 「重大度順」を「各項目、まず発火する入力を示し、次に最小修正」に変えると、再現できる根拠が得られる。

この項目を含むまとめ

同じ分野のプロンプト