コーディング前にAIと相談する:最も大事なVibe Codingの習慣
English · 繁中 · Español · 日本語 · Português (BR)
著者: Danko Peng(@dankopeng)
更新: 2026年3月
読了時間: 約9分
「まず実装してみて」の罠
Vibe Codingを始めたころ、私はよくこうしていた:
アイデアが浮かぶ → すぐにAIに「実装してください」と言う → AIがコードを生成する → 動かない、または期待と違う → また「修正してください」と言う → また修正 → また修正……
この無限ループにはまった経験がある人は多いだろう。
問題は、最初の「実装してください」の段階で要件が十分に整理されていないことだ。AIは言われたことを実装するが、「あなたが本当に欲しいもの」は言われていない。
「まず動かさないで」という魔法の言葉
Vibe Codingで最も重要な習慣の一つが:
コーディングを依頼する前に「まず動かさないで」と伝えること。
先にコードを書かないでください。
[問題や要件の説明]
これをどう実装するか、いくつかのアプローチを提案してください。
それぞれのメリット・デメリットも教えてください。この一文を加えるだけで、AIが「考えるモード」に入る。コードを書く前に選択肢を提示してくれる。
3段階の相談プロセス
良い実装のための相談を3つのフェーズに分けて考える:
フェーズ1:問題を明確にする
まず「自分が何を解決したいのか」をAIに正確に伝える。
先にコードを書かないでください。
ユーザーが購入済み商品にレビューを残せる機能を追加したいです。
現在の状況:
- products テーブルと orders テーブルがある
- ユーザーはorder経由でのみ商品を購入している
- レビューは1商品につき1ユーザー1件まで
- レビューには星評価(1-5)とテキストコメントを含む
この機能の実装について、始める前に整理したいので、
まず私の理解が正しいか確認してください。
追加で確認すべき要件はありますか?AIがこの段階でいくつかの質問を返してくることがある——それは良いサインだ。「未購入のユーザーもレビューを書けますか?」「レビューの削除や編集はできますか?」など。
フェーズ2:選択肢を探る
問題が明確になったら、実装方法の選択肢を検討する:
要件が明確になったところで、実装方法を考えたいです。
以下を教えてください:
1. D1のテーブル設計(どんなカラムが必要か)
2. APIエンドポイントの設計(どんなエンドポイントが必要か)
3. フロントエンドのコンポーネント設計
4. 考慮すべきエッジケース(同じユーザーが同じ商品を2回買った場合など)
まだコードは書かないでください。設計の提案だけお願いします。フェーズ3:合意してから実装
選択肢を検討し、進め方に合意してから実装に入る:
提案された設計で進めます。
確認事項:
- reviewsテーブルのスキーマはこれでOK:[スキーマを確認]
- レビューのAPIは3つのエンドポイント:POST /api/reviews、GET /api/reviews/:productId、DELETE /api/reviews/:id
- フロントエンドは商品詳細ページの下部にレビューセクションを追加
この方向で実装してください。
まず reviewsテーブルのマイグレーションSQLから始めてください。実際の相談例:ショッピングカート機能
「ショッピングカートを実装してください」と一言で頼んだ場合と、相談してから頼んだ場合の違いを示す。
悪い例(いきなり実装依頼):
ショッピングカート機能を実装してください。AIはおそらく動くコードを生成するが、以下の重要な判断を勝手に決める:
- カートをCookieに保存するか、データベースに保存するか
- ログイン必須にするか、ゲストカートを許可するか
- カートの有効期限はどうするか
良い例(相談してから):
先にコードを書かないでください。
ショッピングカート機能を実装したいです。
状況:
- ユーザーはログインしていない状態でも商品を見ている
- 商品数は少ない(最大20-30 SKU)
- モバイルユーザーが多い
カートの保存方法として、どんな選択肢がありますか?
各方法のメリット・デメリットと、私のケースへの推奨を教えてください。AIが選択肢を提示する(Cookie、localStorage、DB)、それぞれのトレードオフを説明してくれる。理解した上で選択できる。
相談と直接実装、どちらにすべきか
すべてのタスクに相談フェーズが必要なわけではない:
直接実装を依頼してOK:
- 単純なUI変更(ボタンの色を変える、テキストを修正する)
- 明確で小さい修正(特定のバグを直す)
- 以前に相談済みの実装パターンと同じもの
必ず相談してから:
- 新しいデータテーブルを作る(スキーマ設計)
- 認証・認可の変更
- 課金・決済に関わる処理
- 複数のファイルにまたがる大きな変更
- 「これをどうやって実装するか迷っている」と感じるとき
相談の効果:実例
以下は実際に相談フェーズを省いた場合と省かなかった場合の違いだ:
相談なし→後で後悔した例:
- 「レビュー機能を実装して」→ AIがレビューをlocalStorageに保存する実装を生成→ サーバー再起動でデータが消えることに後で気づく
- 「メール通知を実装して」→ AI が即時送信の実装を生成→ 大量送信でResendのレート制限に引っかかる
相談ありで防げた例:
- カート保存方法について相談→ ゲストカートのトレードオフを理解→ Cookie方式を意図的に選択
- メール通知について相談→ キュー処理の必要性を把握→ 最初から非同期送信で設計
AIが「わかりました、実装します」とすぐ言ったとき
AIは頼まれたことをすぐにやろうとする性質がある。「わかりました、実装します」と言ってコードを書き始めても、止めていい:
(AIがコードを生成し始めた)
ちょっと待ってください。まだ設計を確認したいです。
コードの前に、この実装で影響を受けるファイルとデータベースの変更を
リストアップしてもらえますか?Danko Peng
X · YouTube · Threads
完全なCloudflareフルスタックテンプレートを今すぐ使い始めたい方へ:
👉 vibefast.app — アーリーバード $99、2026年8月1日より $199 に値上がり。