vibe codingからAI支援開発へ
vibe codingは終点ではない
vibe codingには多くの問題があります。しかし、この記事の目的は「AIを使うな」ということではありません。
目的: vibe codingから「AI支援開発」へ移行すること
vibe codingとAI支援開発は、似て非なるものです。
vibe coding vs AI支援開発
両者の違いを整理しましょう。
| 観点 | vibe coding | AI支援開発 |
|---|---|---|
| 姿勢 | AIに「任せる」 | AIを「使う」 |
| レビュー | Accept All | 慎重にレビュー |
| 理解 | 理解しない | 理解してから使う |
| 責任 | AI任せ | 人間が責任を持つ |
| スキル | 萎縮する | 維持・向上する |
| 品質 | 運任せ | 担保する |
核心的な違い:
- vibe coding: 人間が 受動的
- AI支援開発: 人間が 能動的
AI支援開発の原則
AI支援開発には、いくつかの原則があります。
原則1: AIは「ツール」であり「代替」ではない
AIはハンマーのようなもの。ハンマーが家を建てるのではなく、大工がハンマーを使って家を建てます。
原則2: 生成されたコードの責任は人間にある
「AIが書いたから」は言い訳になりません。コードベースにマージした時点で、あなたの責任です。
原則3: 理解できないコードは使わない
説明できないコードを本番環境に入れてはいけません。
原則4: AIの限界を理解する
AIには限界があります。セキュリティ、パフォーマンス、保守性について、AIを過信しないこと。
原則5: スキルを維持する
AIを使いながらも、自身のスキルを維持・向上させる努力を怠らないこと。
ワークフローの変革
vibe codingからAI支援開発への移行には、ワークフローの変革が必要です。
vibe codingのワークフロー:
1. プロンプトを入力
2. AIが出力
3. Accept All
4. 動作確認
5. 完了
AI支援開発のワークフロー:
1. 要件を明確化
2. 設計を行う
3. タスクを分割
4. プロンプトを作成
5. AIが出力
6. コードをレビュー
- セキュリティチェック
- パフォーマンスチェック
- 保守性チェック
7. 必要なら修正を依頼
8. テストを実行
9. リファクタリング
10. ドキュメント作成
11. 完了
工程は増えますが、品質は大幅に向上 します。
レビューのチェックリスト
AIの出力をレビューする際のチェックリストを用意しましょう。
セキュリティチェック:
- ユーザー入力はサニタイズされているか
- SQLインジェクションの可能性はないか
- XSSの可能性はないか
- 認証・認可は適切か
- APIキーや秘密情報はハードコードされていないか
パフォーマンスチェック:
- N+1問題はないか
- 不要なループはないか
- 適切なインデックスが使われているか
- メモリリークの可能性はないか
保守性チェック:
- 関数は30行以下か
- 単一責任の原則を守っているか
- 命名は適切か
- 重複したコードはないか
テストチェック:
- ユニットテストはあるか
- エッジケースはカバーされているか
- テストは通っているか
AI開発プロンプトエンジニアリング入門
AI支援開発では、プロンプトの質 が重要です。
悪いプロンプト:
ユーザー管理機能を作って
良いプロンプト:
以下の仕様でユーザー管理APIを作成してください:
【機能】
- ユーザー一覧取得(GET /api/users)
- ユーザー詳細取得(GET /api/users/:id)
- ユーザー作成(POST /api/users)
- ユーザー更新(PUT /api/users/:id)
- ユーザー削除(DELETE /api/users/:id)
【技術スタック】
- Express.js
- PostgreSQL(Prismaを使用)
- JWT認証
【制約】
- 各関数は30行以下
- エラーハンドリングを含める
- 入力バリデーションを含める
【命名規則】
- 関数名: camelCase
- 変数名: camelCase
具体的であればあるほど、AIの出力品質は向上します。
AI開発の段階的な改善プロセス
vibe codingからAI支援開発への移行は、段階的に 行いましょう。
Week 1-2: 意識の変革
- Accept Allをやめる
- AIの出力を読む習慣をつける
- 「なぜこうなっているか」を考える
Week 3-4: レビューの導入
- セキュリティチェックリストを使う
- 問題を発見したらAIに修正を依頼
- 自分でも修正を試みる
Week 5-6: プロンプトの改善
- 具体的なプロンプトを書く
- タスクを分割して依頼
- 制約条件を明示
Week 7-8: テストの導入
- AIにテストを書かせる
- CIで自動実行
- テストファーストを試す
Week 9-10: リファクタリング
- AIの出力をリファクタリング
- コード品質ツールを導入
- 継続的な改善
チームでの実践
チームでAI支援開発を実践する際のポイントがあります。
ポイント1: ガイドラインを作成
- AIの使用方針を明文化
- レビュープロセスを定義
- 禁止事項を明確に
ポイント2: レビューを必須に
- AI生成コードにはレビューを必須
- ペアレビューを推奨
- セキュリティレビューを定期的に
ポイント3: 教育を行う
- AIツールの適切な使い方を教育
- アンチパターンを共有
- ベストプラクティスを共有
ポイント4: メトリクスを取る
- AI使用率
- バグ発生率
- セキュリティ問題の発生率
- 生産性の変化
未来への展望
AIコーディングツールは進化し続けます。
予想される進化:
-
より高品質な出力
- セキュリティを考慮したコード生成
- テストを自動生成
-
より深いコンテキスト理解
- プロジェクト全体を理解
- 既存コードとの整合性
-
リアルタイムレビュー
- 生成時にセキュリティチェック
- 問題を自動で指摘
しかし、どれだけAIが進化しても、人間の判断は必要 です。
この事例から学ぶべき教訓
「vibe codingからAI支援開発へ」から学ぶべきことは以下の通りです。
-
vibe codingとAI支援開発は別物
- 受動的 vs 能動的
-
AI支援開発には原則がある
- ツールとして使う、責任は人間に
-
ワークフローを変革せよ
- レビュー、テスト、リファクタリングを導入
-
プロンプトの質が重要
- 具体的に、制約を明示
-
段階的に改善せよ
- 一度にすべてを変えようとしない
まとめ:重要ポイントの振り返り
- vibe codingとAI支援開発は 別物
- AI支援開発の原則:ツールとして使う、責任は人間
- ワークフローを変革 :レビュー、テスト、リファクタリング
- プロンプトの質 が出力の質を決める
- 段階的に改善 :一度にすべてを変えようとしない
- チームでの実践 :ガイドライン、レビュー必須、教育
- AIが進化しても 人間の判断は必要
- 教訓:vibe coderから「AI支援開発者」へ進化せよ