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] 人間が読んでレビューし、自動テストで動作を確認する
解説: もっともらしい誤りが混ざるため、レビューとテストによる検証が前提です。秘密情報は渡しません。