はじめに
本記事は、自分の備忘録も兼ねて書いてます。
今回は、最近話題の「バイブコーディング(Vibe Coding)」について、私の実体験に基づいた知見と、うまくいくためのコツをまとめます。
バイブコーディングとは
バイブコーディングとは、明確な仕様書からコードに落とし込む従来のスタイルではなく、AI(LLM)と対話しながら、その場の「ノリ(Vibe)」や直感的なフローで高速に開発を進めるスタイルのことです。
非常に便利な手法ですが、単に「AIに丸投げすればいい」というわけではありません。AIの特性を理解せずに取り組むと、意図しない実装になったり、手戻りが増えたりします。
AIの特性:AIは「こちらの事情」を知らない
まず大前提として理解すべきなのは、AIはこちらの事情を一切知らないということです。
私たち人間同士であれば、「例の件」「いつもの感じで」といった会話が通じますが、AIは学習データに基づいた確率的な応答を返すプログラムに過ぎません。プロジェクトの歴史、チームの文化、既存コードの暗黙のルールなどは、伝えない限り分かりません。
重要なのは「背景」と「前提」
バイブコーディングで最も重要なのは、「背景(Context)や前提(Premise)を言語化して伝えること」です。
- なぜ その機能を作るのか?
- 誰が 使うのか?
- どのような 制約があるのか?(技術スタック、パフォーマンス要件など)
これらをプロンプト(指示)に含めるかどうかで、出力されるコードの品質は天と地ほど変わります。
# 悪いプロンプト例
「TODOアプリを作って」
# 良いプロンプト例
「Next.jsとTailwind CSSを使って、個人用のシンプルなTODOアプリを作りたい。
データはローカルストレージに保存するだけで良い。
デザインはダークモードを基調とし、ミニマリスト向けに装飾を削ぎ落としてほしい。」
開発規模による「覚悟」の違い
AIを使えば、確かに開発は速くなります。しかし、作るものの規模によって、その体験は大きく異なります。
1. 簡単なツールやスクリプト
これらはすぐに作れます。
「CSVを読み込んでグラフにするPythonスクリプト」や「ランディングページのモックアップ」程度であれば、数回のやりとりで完成度の高いものが手に入ります。まさに「魔法」を感じる瞬間です。
2. プロダクトレベルの開発
一方で、商用利用に耐えうるプロダクトや、複雑なWebアプリケーションを作る場合は話が別です。
私の実体験として、プロダクトレベルの開発には以下のコストが発生する前提で取り組む必要があります。
- 時間:およそ100時間以上
- やりとり:3000回(ターン)以上
「AIが勝手にやってくれる」のではなく、「AIという優秀だが指示待ちの部下と、根気強くペアプログラミングをする」という感覚に近いです。文脈が複雑になればなるほど、AIの記憶(コンテキストウィンドウ)の限界や、推論のゆらぎとの戦いになります。
バイブコーディングを成功させるためのアドバイス
AIの仕組み(ステートレス、トークン予測)をベースに考えると、以下の点が重要です。
-
コンテキストを常にリフレッシュする
- 会話が長くなるとAIは最初の方の指示を忘れます(コンテキスト落ち)。重要な要件は定期的に再提示するか、ドキュメントファイルとして渡しましょう。
-
段階的に作る(Step by Step)
- 一度にすべてを生成させようとせず、「まずはDB設計」「次はAPI」「最後にUI」のように、タスクを小さく分割して依頼しましょう。
-
レビューは人間が責任を持つ
- AIは平気で嘘をつきます(ハルシネーション)。生成されたコードや仕様は、必ず人間が目を通し、動作確認をする必要があります。
まとめ
- AIは「こちらの事情」を知らないため、背景情報の提供が不可欠
- 簡単なものは一瞬で作れるが、プロダクトレベルの開発には100時間・3000ターンの覚悟が必要
- AIの特性を理解し、適切なコンテキスト管理と段階的な指示を行うことが成功の鍵
次回は、実際にAIを使って簡単なWebアプリを作る際の、具体的なプロンプトのパターンについて解説しようと思います。