# Vibe Codingのよくある間違い：5つの罠と回避方法

[English](../en/16-vibe-coding-common-mistakes-en.md) · [繁中](../zh/16-vibe-coding-common-mistakes-zh.md) · [Español](../es/16-vibe-coding-common-mistakes-es.md) · [日本語](../jp/16-vibe-coding-common-mistakes-jp.md) · [Português (BR)](../pt-br/16-vibe-coding-common-mistakes-pt-br.md)

**著者：** Danko Peng（[@dankopeng](https://x.com/dankopeng)）  
**更新：** 2026年3月  
**読了時間：** 約7分

-----

## 失敗から学んだことをまとめた

Vibe Codingを続けていると、同じような失敗パターンに繰り返しはまることに気づいた。自分の経験と、多くのVibe Coderが遭遇する問題を整理すると、5つの典型的な罠が見えてくる。

-----

## 罠1：要件が曖昧なまま始める

**症状：**
- 「なんか期待と違う」
- 「修正してもらったら別のところが壊れた」
- 「何度直してもうまくいかない」

**原因：**
「ショッピングカートを作って」「ログイン機能を追加して」という漠然した依頼をすると、AIは独自の判断で実装する。その判断があなたの期待と違うことが多い。

**回避方法：**
実装前に「先にコードを書かないでください。要件を整理したいです」と伝えて、何を作るかをAIと確認してから依頼する。

```
# 悪い依頼
ユーザーレビュー機能を実装してください。

# 良い依頼
先にコードを書かないでください。
ユーザーレビュー機能を実装したいです。
- 商品ページの下部にレビューを表示
- ログイン済みの購入者のみレビューを書ける
- 星1-5とテキストコメント
- 1ユーザー1商品1件まで
この要件で設計を提案してください。
```

-----

## 罠2：一度に変更しすぎる

**症状：**
- 「デプロイしたら何かが壊れたが、どこが原因かわからない」
- 「さっきまで動いていたのに急に動かなくなった」
- 「AIが修正するたびに別のエラーが出る」

**原因：**
「商品ページのデザイン変更 + カート機能 + メール通知 + 管理画面を全部やって」と一度に大きな変更を加えると、問題が発生したときにどこが原因かを特定できなくなる。

**回避方法：**
1つの変更が完成したら、テストして、コミットする。その後、次の変更に移る。

```
良い開発サイクル：
1つの機能を実装
↓
ローカルでテスト
↓
git commit -m "〇〇を実装"
↓
次の機能へ
```

コミット履歴は「保険」だ。何かが壊れたら、直前のコミットに戻れる。

-----

## 罠3：ローカルテストを省く

**症状：**
- 「ローカルでは見ていないけど、デプロイしたら確認しよう」
- デプロイするたびに本番環境でバグを見つける
- ユーザーがバグを見つける前に自分で見つけられない

**原因：**
「とりあえずデプロイして確認」が習慣になると、本番環境でバグを発見することになる。これはユーザーの信頼を損ない、修正の緊急性も高くなる。

**回避方法：**
必ずローカルで確認してからデプロイする。

```bash
npm run dev
# ↑ ローカルで動作確認

npm run deploy
# ↑ 確認できたらデプロイ
```

「ローカルで動く = デプロイしても動く」は保証されないが、「ローカルで動かない = デプロイしても動かない」はほぼ確実だ。ローカルテストで防げる問題は必ずローカルで防ぐ。

-----

## 罠4：セキュリティをAIに全部任せる

**症状：**
- 「AIがやってくれたから安全なはず」
- 認証が必要なエンドポイントに認証がない
- ユーザー入力の検証が不十分

**原因：**
AIはセキュリティの問題を見落とすことがある。特に指示しなければ、動くコードを生成するが安全なコードとは限らない。

**回避方法：**
デプロイ前にセキュリティチェックリストを自分で確認する。AIにセキュリティレビューを依頼するのは有効だが、最終的な確認は自分でする。

具体的に確認すること：
- すべてのAPIエンドポイントに認証チェックがあるか
- D1クエリに`.bind()`を使っているか
- シークレットがコードに直接書かれていないか
- adminエンドポイントにroleチェックがあるか

```
AIへのセキュリティレビュー依頼例：
このAPIエンドポイントのセキュリティを確認してください。
SQLインジェクション、認証・認可の問題、
情報漏洩のリスクがないか確認してください。

[コードを貼り付け]
```

-----

## 罠5：AIが生成したコードを全く理解しないまま使う

**症状：**
- エラーが出たとき何も対処できない
- 「AIがやってくれたからどう動くかわからない」
- 新しい機能を追加するたびにゼロから説明が必要

**原因：**
コードを理解しないまま使い続けると、何かが壊れたときに自分では何もできない。すべてのコードを深く理解する必要はないが、「何がどこにある」くらいは把握しておく必要がある。

**回避方法：**
すべてを理解する必要はないが、重要な部分は理解してから使う。わからなければAIに説明させる。

```
このコードが何をしているか説明してください。
特に以下の部分が理解できていません：

[コードを貼り付け]

技術的な詳細より、「何をしているか」を
わかりやすく教えてください。
```

理解できない部分がある場合は「このコードを使うリスクはありますか？」と聞いてみる。隠れた問題を指摘してくれることがある。

-----

## よくある状況の判断基準

| 状況 | 良いサイン | 悪いサイン |
|------|-----------|-----------|
| AIへの依頼 | 具体的な要件を伝えている | 「なんとなくこんな感じで」 |
| 実装の進め方 | 1機能ずつ段階的に | 全部一度に |
| テスト | ローカルで確認してからデプロイ | デプロイして確認 |
| セキュリティ | チェックリストで自分確認 | 「AIがやったから大丈夫」 |
| コードの理解 | 何がどこにあるかわかる | 全く把握していない |

-----

## 「うまくいかない」と感じたときのチェック

開発が行き詰まったら、これを確認する：

```
□ 要件は明確に伝えたか？（曖昧な指示になっていないか）
□ 直前に何を変えたか？（最後のコミットから何が変わったか）
□ エラーメッセージを全文コピーしてAIに見せたか？
□ ローカルで確認したか？
□ 変更が大きすぎなかったか？（一度に変えすぎていないか）
```

多くの場合、この5項目のどれかが問題になっている。

-----

**Danko Peng**  
[X](https://x.com/dankopeng) · [YouTube](https://www.youtube.com/@DankoPeng) · [Threads](https://www.threads.com/@dankopeng)

-----

👉 [チュートリアルトップに戻る](../README-jp.md)

完全なCloudflareフルスタックテンプレートを今すぐ使い始めたい方へ：  
👉 **[vibefast.app](https://vibefast.app/pricing)** — アーリーバード $99、2026年8月1日より $199 に値上がり。
