先に結論
- まだコードを書いたことがない → チャットに貼る。環境構築が要りません
- 書いているが行き詰まる → エディタ内蔵型。開いているファイルを前提に答えます
- 複数ファイルをまたぐ変更が多い → ターミナル型。自分でファイルを読み、コマンドを実行します
違うのはモデルではなく、届く範囲
「どのAIが賢いか」という比べ方をすると、この分野は分かりにくくなります。同じモデルでも、コードのどこまで見えているかで答えが変わるからです。
| チャットに貼る | エディタ内蔵 | ターミナル型 | |
|---|---|---|---|
| AIが見られるもの | 貼った文字だけ | 開いているファイル・プロジェクト | リポジトリ全体 |
| ファイルを書き換える | しない(自分で貼り直す) | する(差分を提案) | する |
| コマンドを実行する | しない | しないことが多い | する |
| 準備 | いらない | エディタと拡張 | インストールと設定 |
| 間違いに気づけるか | 自分で全部見る | 差分を見る | 差分と実行結果を見る |
| 向く作業 | 1ファイルの中の話 | 書きかけの続き | 複数ファイルの変更・調査 |
下に行くほど便利になり、同時に危なくなります。ファイルを書き換えられるということは、間違ったまま書き換えられるということでもあるからです。
1. チャットに貼る
使っているAIチャットにコードを貼って聞く形です。準備が何も要らないのが最大の利点で、エラーメッセージの意味を聞く、短い関数を書いてもらう、といった用途なら足ります。
弱点は、AIが貼った部分しか見ていないことです。「この変数はどこで定義されているのか」に答えられないので、話が長くなるほど前提がずれます。3つのチャットの違いはChatGPT・Claude・Geminiは何が違うのかにまとめました。
2. エディタ内蔵型
コードエディタの中でAIが動く形です。開いているファイルと、プロジェクトの中のほかのファイルを踏まえて答えます。書きかけの続きを埋める、選んだ範囲を直す、といった作業と相性が良いです。
注意点は、提案が差分として出てくることです。見た目が正しそうだと、そのまま受け入れてしまいます。受け入れる前に差分を読むという習慣が無いと、動かないコードが静かに増えます。
3. ターミナル型
コマンドを打つ画面でAIを動かす形です。AIが自分でファイルを探し、読み、書き換え、テストを走らせます。複数ファイルにまたがる変更や、「どこでこの処理をしているのか分からない」という調査に向きます。
そのぶん、何をされたのかを自分で確認する責任が大きくなります。最低限、次の3つは決めてから使うべきでした。
- バージョン管理の下でだけ使う。戻せない場所で動かさない
- 変更をまとめて確認する。差分を見ずに次へ進まない
- 外へ出す操作は自分でやる。公開・送信・課金にあたる操作は人が押す
共通して起きること
存在しない関数やライブラリを書く
もっともらしい名前の関数が出てきて、実際には存在しない、ということが起きます。動かして初めて分かるので、書かせたら必ず実行してください。この性質はAIに聞くのと検索するのは何が違うのかで書いた「無いことを確認するのが難しい」と同じ話です。
古い書き方を出す
学習した時点の書き方で答えるため、そのライブラリの現在の推奨と食い違うことがあります。公式ドキュメントを開いて確かめるまでが作業です。
秘密の値を貼ってしまう
APIキーやパスワードを含むファイルをそのまま渡さない。外部のサービスへ送ることになります。ターミナル型は自分でファイルを読むので、読ませない範囲を設定で決められるかを確認してください。
選ぶ順番
| 状況 | まず使うもの |
|---|---|
| エラーの意味が分からない | チャットに貼る |
| 書き始めたが手が止まった | エディタ内蔵 |
| どこを直せばいいか分からない | ターミナル型(調査だけさせる) |
| 同じ変更を何十か所にする | ターミナル型 |
| 人の書いたコードを読む | チャットかエディタ内蔵 |
向いていない人
- コードを読む気が無い人。読まずに使うと、直せない状態で止まります
- バージョン管理を使っていない人。戻せないので、書き換え型は避けてください
- 業務のコードを外部へ出せない人。会社の規定を先に確認してください
まとめ
コードを書くAIは、モデルの差より「どこまで見えていて、何ができるか」の差のほうが大きいものでした。準備の軽さと危なさは逆向きに動くので、今の自分がどこで詰まっているかから選ぶのが早いです。料金はこの記事に書きません。変わったときに記事だけ古いまま残るためです。
