Vibe Coding入門ガイド2026:AIと対話しながら開発するエンジニアの新常識


Vibe Codingとは:自然言語で「意図を伝えて」コードを生成する開発スタイル

Vibe Codingは、2025年にAndrej Karpathy(元Tesla AI責任者)が提唱した概念で、「AIに完全に身を委ね、エラーメッセージをそのまま貼り付けて修正させる」開発スタイルです。

従来の開発:設計 → コード記述 → デバッグ → リファクタリング

Vibe Coding:意図を自然言語で伝える → AIが実装 → 動作確認 → 修正を対話で依頼


Vibe Codingの3大ツール比較

ツール価格強み
Cursor$20/月コードベース全体の理解・マルチファイル編集
Claude CodeClaudeプランに含むターミナル直接操作・ファイルシステムフルアクセス
GitHub Copilot Workspace$10/月GitHubとの完全統合・Issue→PR自動化

Cursorのキーバインド

Ctrl+K インラインコード生成・修正
Ctrl+L チャットでコードベースに質問
Ctrl+I Composer(複数ファイルを一括変更)

Claude Codeの典型的な使い方

claude "このプロジェクトのREADMEを日本語で書いて"
claude "テストが失敗している原因を調べて修正して"
claude "Prismaスキーマを追加してマイグレーションを実行して"

実践:Vibe CodingでTodo APIを30分で作る

Step 1:設計を自然言語で伝える

プロンプト例:
「HonoとDrizzle ORMを使ったTodo API を作って。
- GET /todos: 一覧取得(完了/未完了フィルター付き)
- POST /todos: 作成
- PATCH /todos/:id: 完了状態の更新
- DELETE /todos/:id: 削除
DBはSQLite(開発用)、TypeScript、テストはvitest。
まずプロジェクト構造から始めて。」

Step 2:AIが生成したコードの例

// schema.ts(AIが生成)
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';

export const todos = sqliteTable('todos', {
  id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
  title: text('title').notNull(),
  completed: integer('completed', { mode: 'boolean' }).default(false),
  createdAt: text('created_at').$defaultFn(() => new Date().toISOString()),
});

export type Todo = typeof todos.$inferSelect;
export type NewTodo = typeof todos.$inferInsert;

Step 3:エラーをそのまま貼り付ける

エラーが出たらそのままプロンプトに貼り付けるだけ:

「以下のエラーが出ました:
TypeError: Cannot read properties of undefined (reading 'prepare')
  at todos.ts:23:15
修正してください。」

Vibe Codingで品質を保つ5つのルール

ルール1:生成されたコードを必ず読む

❌ 悪い例:動いたからOKと判断してコードを確認しない
✅ 良い例:生成後にレビューし、理解できない部分をAIに説明させる

ルール2:テストを先に書かせる(TDD)

「実装前にテストを書いて。
期待する動作:
- POST /todos でtitleが空の場合は400エラー
- 正常系は201でtodo objectを返す」

ルール3:型安全性を妥協しない

// AIがanyを使ったら即修正依頼
// ❌ 修正前
function createTodo(data: any) { ... }

// ✅ 修正指示:「anyを使わずに型を明示してください。zodでバリデーションも追加して。」

ルール4:セキュリティチェックをAIに依頼

「このAPIにセキュリティの問題があればすべて指摘して。
SQLインジェクション・認証・レート制限・入力バリデーション等をチェックして。」

ルール5:定期的に「説明を求める」

「このコードで一番複雑な部分はどこ?
なぜこのアプローチを選んだか説明して。
代替案と比較したトレードオフも教えて。」

Vibe Codingのプロンプト設計パターン10選

効果的なVibe Codingの鍵はプロンプトの質です。以下に、現場で使える10パターンを紹介します。

パターン1:制約付き実装指示

「Next.js 15 App Routerでユーザープロフィールページを作って。
制約:
- Server Components優先(クライアントは最小限)
- Zodでフォームバリデーション
- Tailwind CSSでスタイリング
- loading.tsx と error.tsx も作成
- 型安全性を100%保つ(any禁止)」

パターン2:段階的リファクタリング

「以下のコードをリファクタリングして。段階的に進めて。
Step 1: 関数を分割(1関数1責務)
Step 2: 型を厳密に定義
Step 3: エラーハンドリングを追加
Step 4: テストを書く
各ステップの差分を見せて。」

パターン3:比較検討型

「このユースケースに最適なDBを選んで。
要件:
- 読み取りが書き込みの100倍
- JSON形式のユーザー設定を保存
- 月間100万リクエスト
PostgreSQL / MongoDB / Redis それぞれのPros/Consを示して。」

パターン4:テスト駆動生成

「以下のテストケースを先に書いて。実装はまだしないで。
機能:ユーザー登録API
- メールアドレスが不正な場合 → 422エラー
- 既に登録済みのメール → 409エラー
- パスワードが8文字未満 → 422エラー
- 正常系 → 201 + JWTトークン返却」

パターン5:コードレビュー依頼

「このPRのコードをレビューして。以下の観点で指摘して:
1. セキュリティ(SQLi, XSS, CSRF)
2. パフォーマンス(N+1、不要なレンダリング)
3. 可読性(命名、関数の長さ)
4. テストカバレッジの不足
重要度を Critical / Warning / Info で分類して。」

パターン6:エラーデバッグ(コンテキスト付き)

「以下のエラーが本番環境でのみ発生します。
エラー: [エラーメッセージ]
環境: Node.js 20, Next.js 15, Vercel
開発環境では再現しません。
考えられる原因を3つ挙げて、それぞれの確認方法を教えて。」

パターン7:アーキテクチャ設計

「以下の要件でシステム設計をして。
要件:リアルタイムチャットアプリ
- ユーザー数:最大10万人
- メッセージ保存:3年間
- ファイル添付:最大10MB
技術スタックの選定理由とトレードオフも説明して。」

パターン8:マイグレーション計画

「既存のExpressアプリをNext.js App Routerに移行したい。
現状:Express + EJS + MySQL(30エンドポイント)
段階的な移行計画を作って。各段階でのリスクと対策も含めて。
一度に全部やらず、平行稼働期間を設けて。」

パターン9:パフォーマンス最適化

「このReactコンポーネントが遅い。
症状:リストが100件を超えるとスクロールがカクつく
コンポーネントのコードは以下:[コード]
React DevToolsのProfilerで見た結果:[結果]
具体的な最適化案をコード付きで3つ以上提案して。」

パターン10:ドキュメント生成

「このAPIの仕様書をOpenAPI 3.0形式で生成して。
含めるもの:
- 全エンドポイントの説明
- リクエスト/レスポンスのスキーマ(例付き)
- エラーレスポンス一覧
- 認証方式の説明」

Vibe Coding実践:プロジェクト別ワークフロー

Webアプリ開発のワークフロー

1. 要件定義(プロンプトで仕様を明確化)

2. DB設計(AIにER図・スキーマを生成させる)

3. API設計(OpenAPI仕様を生成)

4. バックエンド実装(TDD:テスト→実装→リファクタ)

5. フロントエンド実装(コンポーネント単位で生成)

6. E2Eテスト(Playwrightテストを自動生成)

7. CI/CD設定(GitHub Actions YAMLを生成)

バグ修正のワークフロー

// Step 1: エラーログをそのまま渡す
// 「以下のエラーが発生しています。修正してください。」

// Step 2: AIが提案する修正を確認
// 修正前のコード
async function fetchUser(id: string) {
  const res = await fetch(`/api/users/${id}`);
  const data = await res.json(); // ここでエラー
  return data;
}

// Step 3: AIが提案する修正後のコード
async function fetchUser(id: string): Promise<User | null> {
  try {
    const res = await fetch(`/api/users/${id}`);
    if (!res.ok) {
      console.error(`Failed to fetch user: ${res.status}`);
      return null;
    }
    const data: User = await res.json();
    return data;
  } catch (error) {
    console.error('Network error:', error);
    return null;
  }
}

ツール別の詳細比較と選び方

機能別比較表

機能CursorClaude CodeGitHub Copilot WorkspaceWindsurf
コード補完◎ Tab補完
マルチファイル編集◎ Composer◎ Cascade
ターミナル操作◎ 直接実行
Git操作◎ 自動commit◎ PR自動化
コードベース理解◎ @codebase◎ 全ファイル
テスト自動生成
デバッグ支援◎ 実行+修正
月額料金$20Claudeプラン$10$10〜
オフライン動作×

用途別おすすめ

個人開発・スタートアップ → Cursor(バランスが良い)
DevOps・自動化重視 → Claude Code(ターミナル操作が強い)
チーム開発・GitHub中心 → GitHub Copilot Workspace
コスパ重視 → Windsurf($10/月で高機能)

各ツールの隠れた便利機能

Cursor

@web → 最新のドキュメントをWeb検索して参照
@file → 特定ファイルをコンテキストに追加
@folder → フォルダ全体を参照
Ctrl+Shift+I → Composer(マルチファイル一括変更)

Claude Code

claude --print "簡単な質問"  # 対話なしで即回答
claude "git diffを見てコミットメッセージを書いて"  # Git統合
claude "/review"  # コードレビュースキル
CLAUDE.md にルールを書くとプロジェクト固有の制約を自動適用

GitHub Copilot Workspace

Issue → Plan → Implement → PR の全自動化
「Fix #123」とIssueに書くだけでPRが生成される
複数ファイルの変更を1つのPlanとして俯瞰できる

Vibe Codingの生産性測定:実際のデータ

実測データ:同一タスクでの比較

タスク:RESTful API + 管理画面(CRUD 5エンティティ)

従来開発(手書き):
  設計:4時間
  実装:16時間
  テスト:8時間
  合計:28時間

Vibe Coding(Claude Code):
  設計(プロンプト作成):1時間
  実装(AI生成+レビュー):3時間
  テスト(AI生成+修正):1.5時間
  合計:5.5時間

生産性向上:約5倍
※ただしAI生成コードのレビューは必須

品質面の比較

テストカバレッジ:
  手書き(急いだ場合):40〜60%
  Vibe Coding:80〜95%(テスト生成が容易なため)

バグ密度(1000行あたり):
  手書き:3〜5件
  Vibe Coding:2〜4件(型チェック・バリデーション漏れが減る)
  ※セキュリティバグはAIが見落とすことがあるため手動レビュー必須

Vibe Codingの限界:向かない場面

❌ 向かない場面:
- 要件が曖昧なまま始める(ゴミが量産される)
- AIが知らない社内フレームワーク・独自設計
- セキュリティクリティカルな認証・暗号化実装

✅ 向いている場面:
- ボイラープレート・CRUD実装
- 既存コードのリファクタリング
- テスト生成
- ドキュメント・コメント生成
- 新しいライブラリの使い方の習得

まとめ

Vibe Codingは「AIに依存する開発」ではなく「AIを道具として使いこなす開発」です。

  • Cursor:大規模プロジェクトでコードベース全体を理解させたい場合
  • Claude Code:ターミナルで自動化・スクリプト実行まで含めた開発
  • GitHub Copilot Workspace:Issue→PR自動化のワークフローを重視する場合

エンジニアの価値は「コードを書く速度」から「何を作るかを決める判断力」にシフトしています。

関連記事