AIは開発者の役割を刷新し、ソフトウェア開発の方法を大きく変えつつあります。プログラマーはコードを書く作業から、AIと協働するワークフローへと移行しています。自然言語で指示してAIにコードを生成させる「バイブコーディング」は、革新的である一方、リスクもあります。本書は、GitHub CopilotやOpenAI CodexといったAIツールを活用し、目標設定、コード検証、統合の戦略や注意点を解説し、急速に進化する環境で開発者が生き残るための知見を共有します。
バイブコーディングを超えて
―AI時代を生き抜く開発者の未来
Addy Osmani 著、佐藤 直生 訳
- TOPICS
- AI/LLM
- 発行年月日
- 2025年12月
- PRINT LENGTH
- 272
- ISBN
- 978-4-8144-0142-0
- 原書
- Beyond Vibe Coding
- FORMAT
- Print PDF EPUB
目次
日本の読者のみなさんへ
はじめに
Ⅰ部 基礎
1章 序論:バイブコーディングとは何か?
1.1 AIコーディングの範囲:バイブコーディングからAI支援エンジニアリングまで
1.1.1 バイブコーディングのアプローチ:会話によるコーディング
1.1.2 AI支援エンジニアリングのアプローチ:AIパートナーとの構造
1.1.3 異なる考え方、異なる期待
1.1.4 幅広い範囲の中で自分の位置を見つける
1.2 コードの行を超える:意図を持ったプログラミング
1.2.1 プロンプトの台頭:指示から説明へ
1.2.2 どのように動作するか:反復サイクルとコード生成におけるAIの役割
1.3 生産性、近づきやすさ、プログラミングの本質の変化
1.4 ツールを垣間見る:新しいエコシステム
1.4.1 VS Code+GitHub Copilot:Microsoftの統合AI開発プラットフォーム
1.4.2 VS Code+Cline:オープンソースの自律型コーディングエージェント
1.4.3 Cursor:AI駆動コードエディター
1.4.4 Windsurf:完全なコードベースインデックスを備えたAI駆動IDE
1.5 AIモデル:コード生成の状況
1.5.1 モデルのカテゴリーを理解する
1.5.2 タスクに適したモデルを選択する
1.5.3 どのモデルでも使える実践的なヒント
1.6 主なモデル
1.6.1 Google Gemini:マルチモーダルコーディングの強力なモデル
1.6.2 Claude:推論の名人
1.6.3 ChatGPT:多用途のコーディングコンパニオン
1.7 ニーズに合ったモデルを選択する
1.8 バイブコーディングの利点と限界:微妙に異なる見解
1.8.1 バイブコーディングの理想的なユースケース
1.8.2 AIがまだ苦労している点
1.9 まとめと次の一歩
2章 プロンプトの芸術:AIと効果的にコミュニケーションする
2.1 プロンプトエンジニアリングの基礎
2.2 具体性と明確さ:伝わるプロンプトを書く
2.3 反復的な改良:AIとのフィードバックループ
2.4 2つのプロンプトを比較する
2.4.1 悪いプロンプト
2.4.2 改善されたプロンプト
2.5 プロンプトのテクニック:効果的なコミュニケーションのためのツールボックス
2.5.1 ゼロショットプロンプティング
2.5.2 ワンショットプロンプティングとFew-Shotプロンプティング
2.5.3 思考の連鎖(CoT)プロンプティング
2.5.4 役割プロンプティング
2.5.5 コンテキストに応じたプロンプティング
2.5.6 メタプロンプティング
2.5.7 自己一貫性(複数の出力と多数決)
2.5.8 ReAct(Reason+Act)プロンプト
2.6 高度なプロンプティング:テクニックを組み合わせ、複雑さに対処する
2.6.1 モデルの限界を知る
2.6.2 ステートフルな会話とワンショットプロンプティングとの比較
2.6.3 よくあるプロンプトのアンチパターンと、それを避ける方法
2.7 まとめと次の一歩
Ⅱ部 AIコーディングの実践
3章 70%問題:実際に動作するAI支援ワークフロー
3.1 開発者は実際にどのようにAIを使っているか
3.1.1 よくある失敗パターン
3.1.2 実際に動作するもの:実践的なワークフローのパターン
3.2 バイブコーディングの黄金律
3.3 まとめと次の一歩
4章 70%を超えて:人の貢献を最大化する
4.1 シニアエンジニアと開発者:AIの経験を活かす
4.1.1 アーキテクトになり、編集長になる
4.1.2 大きなイニシアチブの「力を増強させるもの」として、AIを使う
4.1.3 指導し、基準を設定する
4.1.4 ドメインへの精通と先見性を養い続ける
4.1.5 ソフトスキルとリーダーシップを磨く
4.2 ミドルエンジニア:適応と特化
4.2.1 システム統合と境界の管理を学ぶ
4.2.2 ドメインの専門知識を築き上げる
4.2.3 パフォーマンス最適化とDevOpsを習得する
4.2.4 コードレビューと品質保証に注力する
4.2.5 システム思考を学ぶ
4.2.6 適応力を持ち、学び続ける
4.2.7 機能横断的なコミュニケーションが得意になる
4.2.8 システム設計とアーキテクチャを学ぶ
4.2.9 AIを使う!
4.2.10 UI/UXデザインに挑む
4.3 ジュニア開発者:AIとともに成長する
4.3.1 基礎を学ぶ:「なぜ」を省略しない
4.3.2 AIの安全網なしで問題解決とデバッグを実践する
4.3.3 テストと検証に集中する
4.3.4 保守性の目を養う
4.3.5 プロンプティングとツールのスキルを(賢く)養う
4.3.6 フィードバックと指導を求める
4.3.7 コミュニケーションと協働
4.3.8 考え方を変える:消費から作成へ
4.4 まとめと次の一歩
5章 生成されたコードを理解する:レビュー、改良、所有
5.1 意図から実装へ:AIの解釈を理解する
5.2 「多数派」の問題:「最も一般的」は「最も適切」を意味しない
5.3 コードの可読性と構造:パターンと潜在的な問題点
5.4 デバッグ戦略:エラーの発見と修正
5.5 保守性のためのリファクタリング:AIコードをあなたのコードにする
5.6 テストの重要性:単体テスト、統合テスト、エンドツーエンドテスト
5.7 まとめと次の一歩
6章 AI駆動プロトタイピング:ツールとテクニック
6.1 AIアシスタントによる素早いプロトタイピング
6.2 AIプロトタイピングツール
6.3 コンセプトからプロトタイプへ:反復的な改良
6.4 本番に向けてプロトタイプを進化させる
6.5 AIプロトタイピングの課題に取り組む
6.6 まとめと次の一歩
7章 AIでウェブアプリケーションを構築する
7.1 プロジェクトをセットアップする:AIによるスキャフォールディング
7.1.1 AIを使ったフロントエンド開発パターン
7.1.2 AIを使ったバックエンド/API開発パターン
7.2 データベースの設計と統合
7.2.1 ORMを使う
7.2.2 データベースクエリ
7.2.3 AIが生成したクエリを確認する
7.3 フルスタックの統合:フロントエンドとバックエンドの融合
7.3.1 フロントエンドとバックエンドの契約を合わせる
7.3.2 AIを使ったリアルタイムの協働
7.4 AI生成ウェブアプリケーションのテストと妥当性確認
7.5 AIが構築したウェブプロジェクトの成功例
7.6 まとめと次の一歩
Ⅲ部 信頼と自律性
8章 セキュリティ、保守性、信頼性
8.1 AIが生成するコードに共通するセキュリティ脆弱性
8.1.1 不適切な認証認可
8.1.2 パッケージ管理の問題
8.2 セキュリティ監査
8.2.1 自動セキュリティスキャナーを活用する
8.2.2 別のAIをレビュアーとして使う
8.2.3 セキュリティチェックリストを使って人によるコードレビューを行う
8.2.4 ペネトレーションテストとファジングを行う
8.2.5 セキュリティに焦点を当てた単体テストを追加する
8.2.6 トレーニングカットオフを補う更新を提供する
8.2.7 ロギングの最適化
8.2.8 セキュリティに重点を置いた、更新されたモデルやツールを使う
8.2.9 コンテキストにおける警告に注意を払う
8.2.10 速度を落とす
8.3 AI生成システムのための効果的なテストフレームワークの構築
8.4 パフォーマンス最適化
8.5 AI駆動コードベースにおける保守性の確保
8.5.1 プロンプトの作成中
8.5.2 コード出力を扱う
8.5.3 フォローアップ
8.6 コードレビュー戦略
8.7 信頼できるデプロイのためのベストプラクティス
8.7.1 デプロイ前とデプロイ中
8.7.2 継続的なベストプラクティス
8.8 まとめと次の一歩
9章 バイブコーディングの倫理的課題
9.1 知的財産に関する考慮事項
9.1.1 疑わしい出力を受け取った場合の対処法
9.1.2 グレーゾーン
9.2 透明性と帰属表示
9.3 バイアスと公平性
9.4 責任あるAI利用のための黄金律
9.5 まとめと次の一歩
10章 自律型バックグラウンドコーディングエージェント
10.1 コパイロット型から自律型エージェントへ:バックグラウンドコーディングエージェントとは何か?
10.2 自律型コーディングエージェントはどのように動作するか?
10.2.1 計画
10.2.2 実行
10.2.3 検証する
10.2.4 レポート
10.3 バックグラウンドエージェントはIDE AIアシスタントと比較してどうなのか?
10.4 複数のAIモデルを組み合わせて強みを最大化する
10.4.1 タスクの種類によってモデルを差別化する
10.4.2 オーケストレーションシステムを使う
10.4.3 人とAIのハイブリッドチーム
10.5 自律型コーディングエージェントの主要プレイヤー
10.6 課題と限界
10.7 AIコーディングエージェントを効果的に使うためのベストプラクティス
10.7.1 自律型エージェントが実装するタスクを戦略的に選択する
10.7.2 エージェントに特化した計画と監視の機能を活用する
10.7.3 エージェントの同時操作を管理する
10.7.4 エージェントを統合するためにチームのプラクティスを進化させる
10.7.5 自律システムでフィードバックループを構築する
10.8 まとめと次の一歩
11章 コード生成を超えて:AI拡張開発の未来
11.1 テスト、デバッグ、保守におけるAI
11.1.1 テストの自動生成
11.1.2 知的なデバッグ
11.1.3 予知保全(予測的な保守)とリファクタリング
11.2 AI駆動デザインとユーザー体験(UX)のパーソナライゼーション
11.2.1 生成デザインツール
11.2.2 UXリサーチのためのAI
11.2.3 パーソナライズされたユーザー体験(UX)
11.3 AIによるプロジェクト管理の進化
11.4 自律型エージェントはソフトウェアエンジニアリングをどう変えるか
11.5 プログラミング言語の未来:自然言語駆動開発?
11.6 バイブコーディングはどのように業界を再構築しているのか
11.7 まとめと次の一歩
索 引