AIコーディング支援

AIコーディング支援とは

AIコーディング支援は、[[生成AI・LLM]] を使ってコードの作成・修正・説明を助けるツールの総称です。GitHub Copilot、Cursor、Claude Code などが代表例です。

LLMは大量のソースコードを学習しているため、「この続きに書かれそうなコード」を高い精度で予測できます。エディタ上の補完から、指示だけで複数ファイルを書き換えるものまで、支援の深さには段階があります。

支援の3つのレベル

レベルできること人間の役割
補完型書きかけの行や関数の続きを提案する提案を採用するか判断する
チャット型質問・エラー解説・リファクタ案を対話で得る質問を投げ、答えを検証する
エージェント型ファイル編集・テスト実行・修正まで自律的に回すゴールを与え、結果をレビューする

エージェント型は [[AIエージェント]] の考え方をそのまま開発作業に適用したもので、「計画 → 実行 → 結果を見て修正」というループを回します。

精度を左右するのはコンテキスト

AIの出力品質は、どれだけ適切な情報を渡せたかでほぼ決まります。同じモデルでも、渡す情報が薄いと的外れなコードが返ってきます。

  • 開いているファイルや関連ファイルの中身
  • プロジェクトの規約を書いた設定ファイル(コーディング規約、使用ライブラリなど)
  • エラーメッセージやテストの失敗ログ

[[MCP(Model Context Protocol)]] は、こうした外部情報やツールをAIに渡すための共通規格です。[[プロンプトエンジニアリング]] の基本(目的・制約・期待する形式を明示する)は、コード生成でもそのまま効きます。

得意なこと・苦手なこと

  • 得意: 定型的なコード、テストコードの雛形、正規表現、見慣れない言語の書き方、エラーメッセージの解説
  • 苦手: プロジェクト固有の事情、性能要件やセキュリティ要件の判断、仕様そのものの妥当性の検討

もっともらしいが誤ったコード(存在しない関数の呼び出しなど)が出ることもあります。生成AI一般の弱点である事実の捏造が、コードでも同じように起こると考えてください。

安全に使うための注意

  • 生成コードは必ず読む: 理解できないコードをそのまま入れない。[[コードレビュー]] の対象はAIが書いた行も同じ
  • [[自動テスト]] で裏を取る: 「動くように見える」と「動く」は別物
  • 秘密情報を渡さない: APIキーや個人情報をプロンプトに貼らない([[シークレット管理]])
  • ライセンスと社内規約を確認する: どのツールを何に使ってよいかは組織のルールに従う

初学者向けポイント

  • AIに任せきりだと理解が伸びない。生成されたコードを1行ずつ説明させると学習教材になる
  • 小さく指示して小さく確認する方が、大きくまとめて頼むより結果が安定する

関連技術とのつながり

  • [[生成AI・LLM]] — コード生成の中身を担うモデル
  • [[プロンプトエンジニアリング]] — 指示の書き方が出力品質を決める
  • [[AIエージェント]] — 自律的に編集・実行まで行うタイプの基盤となる考え方
  • [[コードレビュー]] — AIが書いたコードにも人のレビューが必要
  • [[MCP(Model Context Protocol)]] — 外部情報やツールをAIに渡す共通規格
  • [[コンテキストウィンドウ]] — 一度に渡せる情報量には上限がある。関連ファイルを全部貼れば精度が上がるわけではない
  • [[Webセキュリティ]] — 生成されたコードにも脆弱性は混入しうる。代表的な攻撃と防御を知ったうえでレビューする
Q: AIコーディング支援の「エージェント型」の説明として正しいのはどれ?
- [ ] 書きかけの行の続きだけを提案する
- [x] ファイル編集やテスト実行まで自律的に繰り返し、人はゴールを与えて結果をレビューする
- [ ] コードを暗号化して保存する
解説: エージェント型は計画・実行・修正のループを自律的に回します。人の役割はゴール提示とレビューです。

Q: AIの出力品質を大きく左右する要素はどれ?
- [x] 関連ファイルやエラーログなど、渡したコンテキストの質
- [ ] エディタの配色設定
- [ ] ソースコードの文字コード
解説: 同じモデルでも渡す情報が薄いと的外れになります。コンテキストの質が品質をほぼ決めます。

Q: AI生成コードの扱いとして適切なのはどれ?
- [ ] 動いているように見えればレビューは不要
- [ ] APIキーを貼り付けて質問すると精度が上がる
- [x] 人間が読んでレビューし、自動テストで動作を確認する
解説: もっともらしい誤りが混ざるため、レビューとテストによる検証が前提です。秘密情報は渡しません。