AIが生成したコードを読まず、Accept Allだけを押して開発する方法が、いわゆる「バイブコーディング」です。初速が驚くほど速く、一度体験すると戻れないという声も多い一方、コードを読まない代償がいつ、どこで請求されるのかは、あらかじめ知っておくべきです。
この記事では、バイブコーディングの正確な定義と利点、コードを読まないことで実際に起きる3つの問題、すべてを読まずに事故を減らす3つの解決策を順に整理します。
まず結論から見ていきましょう。
バイブコーディングは開始時の速度を10倍にしますが、コードを読まないと、その速さを維持費として後から吐き出すことになります。
プロトタイプや自分だけが使うツールなら、十分試す価値があります。ただし、他人に提供するサービスや長期保守するコードなら話は別です。理由を順に見ていきます。
バイブコーディングとは正確には何ですか?
まず用語を確認しましょう。「バイブコーディング(vibe coding)」は、2025年2月にアンドレイ・カルパシーがTwitterへ投稿した言葉から始まりました。
要点は単純です。AIに自然言語で望むことを伝えるとAIがコードを書き、人はそのコードを詳しく読まないということです。
カルパシー本人も「私はいつもAccept Allを押し、もうdiffを読まない」と述べています。エラーが出ると、そのメッセージをそのままコピーして再びAIに送ります。
ちなみに、この言葉は2025年のCollins Dictionaryの「今年の言葉」にも選ばれました。
バイブコーディングの本質は「AIコーディング」よりも「コードを読まないこと」に近いものです。AIを使っていてもdiffをすべて読めば、それは単なるAI支援開発であり、バイブコーディングではありません。
メリットは明確です
バイブコーディングが人気を集めるのには理由があります。
1つ目は開始速度です。 数日かかっていたプロジェクト初期設定が、数十分に短縮されます。画面に何か表示されるまでの時間が劇的に短くなります。
2つ目は苦手分野の補完です。 たとえばバックエンド開発者がCSSレイアウトを言葉で説明して生成させるように、不慣れな領域への参入障壁が大きく下がります。
3つ目は心理的なハードルです。 「まず作ってみよう」という気持ちが強まり、先延ばししていたアイデアに実際に取り組めるようになります。
問題は、この満足感がたいていプロジェクト初期、コードが小さい間しか続かないことです。
コードを読まないと本当に起きること
コードベースがある程度大きくなると、共通して3つの問題が現れます。
1. バグを直せなくなります。 エラーをそのままAIに渡す方法は、AIが直せない瞬間に行き詰まります。コードを読んだことがないため、どこが問題か見当もつかないからです。
2. 同じ機能が複数箇所に生まれます。 AIは以前書いたコードを忘れることが多く、似た関数を何度も新しく作ります。後で1つを直しても、残りはそのままです。
3. 静かなセキュリティホールが開きます。 典型例は、APIキーがクライアントコードにそのまま埋め込まれるケースです。AIは指示どおりに動き、人は確認しないからです。
3つ目が最も恐ろしい問題です。たとえば、こんなコードです。
// AIAIが書いたコード — キーがクライアントに露出
let apiKey = "sk-live-abc123" // アプリのバイナリにそのまま含まれる
let url = URL(string: "https://api.example.com?key=\(apiKey)")!
URLSession.shared.dataTask(with: url).resume()
このようなコードは、リリースした瞬間に誰でもキーを見られます。diffを読まないと、こうした問題を見落とします。
では、どうすればよいのでしょうか? 解決策3つ
幸い、「すべて読め」という状態に戻らなくても、事故を大幅に減らす方法があります。
解決策1。致命的な3箇所だけは自分で読む。 すべて読めなくても、事故が起きると取り返しのつかない部分を決めて確認します。
// 最低限、この3つは自分で確認する
// 1) 認証・キー関連のコード
// 2) 決済・金銭関連のロジック
// 3) ユーザーデータを削除・変更する部分
この3つだけでも押さえれば、致命的な事故の可能性は大きく下がります。
解決策2。コードの代わりにAIの要約を読む。 コードを読みたくないなら、最低限「今書いたコードについて、セキュリティ・金銭・データ削除に関するリスクだけ要約して」ともう一度依頼し、コードの代わりにその要約を読みましょう。コードを書いたセッションではなく新しいセッションで、できれば別のAIにレビューさせると、自分のコードを擁護する偏りも減らせます。
解決策3。人が読まないなら、機械に読ませる。 gitleaksのようなシークレットスキャナーをpre-commitフックに設定すれば、先ほどのAPIキー露出をコミット段階で自動検出できます。リンターとテストをCIに組み込むのも同じ考え方です。
3つの解決策に共通するのは、読むコストは減らしても、検証をゼロにはしないことです。
それで、バイブコーディングはやるべきですか、やめるべきですか?
結論は「状況による」です。
| 状況 | おすすめ度 | 理由 |
|---|---|---|
| プロトタイプ・デモ | 強くおすすめ | 早く作って捨ててもよい |
| 自分だけで使うツール | おすすめ | 壊れて困るのは自分だけ |
| サイドプロジェクト | 条件付き | 核心ロジックは読む |
| 実サービス・チーム開発 | おすすめしない | 保守費用が速度を食いつぶす |
要点は、「コードをまったく読まないか、重要な箇所だけ読むか」の違いです。
Q. 初心者もバイブコーディングで開発を学んでよいですか? A. 作る楽しさを感じるには最適です。ただしコードをまったく読まないと、スキルはあまり伸びません。作った後にAIへ「なぜこのコードにしたの?」と尋ね、読む習慣も身につけることをおすすめします。
Q. AIが書いたコードは、どこまで信頼してよいですか? A. 動くことと安全であることは別です。動かすことはAIを信頼しても、安全で保守可能かどうかは人間か別の検証手段が確認しなければなりません。
まとめると、「速度はAIに、判断は自分に」です。すべて読む必要はありませんが、まったく読まなければ、いつか代償を払うことになります。上の3つの解決策のうち1つでも今日のプロジェクトに組み込めば、その代償を大きく減らせます。
さらに一歩進めると、そもそもコードを書かせる前に要件を文書で確定する、仕様駆動開発(SDD)という方法論もあります。バイブコーディングとは反対側のアプローチで、これは次の記事で詳しく扱います。
参考資料
- Vibe coding - Wikipedia
- Not all AI-assisted programming is vibe coding (but vibe coding rocks) - Simon Willison

