2025-09-29 AIソムリエ: Beyond vibe codingとAI支援開発の未来
2025年9月29日のAIソムリエ(新しいAIサービスをためしてみるなどする会)では、Google の Engineering Leader である Addy Osmani 氏の書籍「Beyond Vibe Coding」の内容を紹介しました。
もともとこの本を読もうと思ったきっかけは、現状におけるAIを活用した開発の「常識」はどう認識されているのか?確認しておきたいと思った点です。
実際に読んでみた感想としては、私個人の認識とほとんど差はなく、その分、驚きは少なめではありましたが、自分の認識と2025年9月時点の出版物で差がないと確認できたことは一つの収穫だったのかなと思います。
個人的には第11章の Beyond Code Generation: The Future of AI-Augmented Development が最も楽しく読めました。
例えば、自然言語を(一部あるいは全面的に)プログラミング言語として使用するなど、性能や精度の問題で今はまだ実現できないことについて思いを巡らせるのはワクワクします。
なお書籍と同名のウェブサイトもあり、書籍の一部はサイト上でも紹介されています。
以下は会の書き起こしをAIでまとめたものです。
Vibe codingとAI支援エンジニアリング
Vibe coding は、プロンプトを介した探索的アプローチであり、開発者が高レベルの目標に集中することで、生産性の大幅な向上が期待できると紹介されました。しかし、AIが生成するコードにはエラー処理、セキュリティ、スケーラビリティの点で課題があるため、人間の監視が不可欠であると強調されました。
一方で、AI支援エンジニアリングは、計画やコード規約、アーキテクチャをAIに読み込ませることで、信頼性を維持しつつ質の高いコードを効率的に生成することを目指すアプローチです。この2つのアプローチは対立するものではなく、目的に応じて使い分けるべきであると述べられました。
開発者の役割の変化とAIの得意・苦手領域
AIの進化に伴い、開発者の役割はコード作成から、アーキテクチャ設計、問題定義、検証、ユーザー体験の改善へと変化していくと予測されています。
Vibe codingが有効なケースとしては、ゼロからの製品開発や機能プロトタイピング、定型的な作業が多いCRUDアプリケーション、API連携、現代のフレームワーク活用、反復的なコード生成などが挙げられました。
AIが苦手とする領域としては、複雑なアルゴリズムの実装、ミッションクリティカルなシステム、レガシーシステム、パフォーマンス最適化、新規性の高い問題、創造的なUI/UXデザインなどが言及されました。
プロンプトと効果的なAIコミュニケーション
プロンプトは「新しいソースコード」であり、AIは「インタープリター」のように言葉を実際のコードに変換すると説明されました。AIは指示されたことしか理解できないため、具体的な言語やバージョン、スコープ、要件を明確に伝えることが重要です。また、過剰なプロンプトはモデルを混乱させるため、簡潔に書くことが求められます。
効果的なプロンプトのテクニックとして、ゼロショット、ワンショット、フューショットプロンプト、COT(Chain of Thought)、ロールプロンプティング、コンテキストプロンプティング、メタプロンプティング、RAG(Retrieval Augmented Generation)などが紹介されました。
AI生成コードのレビューと検証
AIが生成したコードをそのまま採用するのではなく、人間によるレビューとテストが不可欠です。AIの解釈を理解し、元の意図と比較すること、意図しない機能やエッジケースが含まれていないかを確認することが重要です。AIモデルは最も単純な解決策を生成する傾向があるため、コンテキストに基づいて調整する必要があるとも指摘されました。
プロトタイピングにおけるAI活用
AIドリブンプロトタイピングツールは、アイデアを動くものにするまでの時間を数日から数時間に短縮できると説明されました。これは、定型的な作業をAIが自動処理することで、人間がより高度な設計上の決定に集中できるためです。ただし、プロトタイプのコードは使い捨てと見なされることが多いため、保守性やスケーラビリティに課題がある可能性がある点に注意が促されました。
AIによるWebアプリケーション開発
AIはWebアプリケーション開発において、プロジェクトの足場作りやUIコンポーネント開発を加速させます。しかし、モノレポやマルチリポジトリ、RESTかGraphQLかといったアーキテクチャ上の重要な決定は人間が行う必要があると強調されました。AIは初期の開発時間を短縮するツールであり、開発者はアーキテクチャの計画や構造の正確性、複雑な側面への対処に集中し、退屈な作業はAIに任せると良いと述べられました。
AI生成コードのセキュリティと信頼性
AIが生成したコードにはセキュリティ上の脆弱性が共通して存在するため、開発者はその安全網として機能する必要があります。SQLインジェクションやXSSのような脆弱性に対しては、静的解析ツールやAIを活用したレビュー、人間のコードレビュー、セキュリティテストの追加などが有効です。また、AIコード生成速度によりコードベースが「巨大な泥団子」になるリスクがあるため、保守性の維持が不可欠であり、スタイルの一貫性、モジュール化、ドキュメント化、コードレビュー、CI/CDパイプラインの構築が重要であると強調されました。
AIコーディングの倫理的・社会的側面
AI生成コードにおけるIP侵害のリスクに注意が必要であると述べられました。多くのAIツールはユーザーに権利があると定めていますが、それが第三者のIPから完全に解放されることを自動的に意味するわけではありません。AIの使用に関する透明性を保つことや、AI生成コードの出所を適切に引用することが重要であると強調されました。
自律型バックグラウンドコーディングエージェントの展望
自律型バックグラウンドコーディングエージェント(Devin、Julesなど)は、従来のコーディングアシスタントよりも高い自律性を持つと説明されました。これらのエージェントはプロジェクト全体をスコープとし、プロアクティブにコードを生成し、実行能力を持つと述べられました。しかし、人間の介入がないことで決定の連鎖による複合的エラーが発生する可能性や、複数のエージェントが並列して動くことによる競合、エンジニアの認知負荷増大といった課題も指摘されました。
AI拡張開発の未来とプログラミング言語の進化
将来的にテストの自動生成やインテリジェントなデバッグ、予測的なメンテナンスとリファクタリングがさらに拡大すると予測されました。また、スクラムのような計画とスケジューリング、リスク分析、コードの状態可視化、チームの健康状態のモニタリングなど、プロジェクト管理の進化も期待されると述べられました。AIエージェントの標準化が進み、エンジニアの仕事が定型的な作業から問題定義、ソリューションの統合、AIの指導へと移行すると予測されました。
プログラミング言語も自然言語型開発や、一部が通常コードで一部が自然言語のハイブリッド言語へと進化する可能性が提示されました。対話型プログラミングが一般的になり、人間とAIが会話を通じて要件を段階的に洗練していく形になると予測されています。この変化の時代を生き抜くためには、AIツールを実験的に使用し、知識や知見をコミュニティと共有し、生涯学習の精神を持ち続けることが求められると締めくくられました。
Discussion