最近ネットだけでなく社内でもバイブコーディングの単語がたくさん聞く状況で
バイブコーディングとは一体何か、どんな時に使うべきなのか
調べた時のメモをここにまとめてみました
興味のある方はぜひ一読いただければ幸いです
◆バイブコーディングとは
バイブコーディングとは、コードの詳細を気にせず完全にAIに任せる開発手法です
AI研究者は以下のように説明していました
真のバイブコーディングとは、単にAIにコードを生成させることではなく、「コードの存在を忘れるほど、完全にAIに任せること」
ただこれにより、プログラミング経験がない人でも、自分でアプリケーション全体をコーディングできるようになる可能性がある一方で、APIキーの使用上限に達したり、予期せぬ機能が生成されたりするなどのデメリットも存在するかと思います
◆なぜバイブコーディングが重要なのか
AIの処理能力が指数関数的に向上し、将来的には数日〜数週間分の作業を瞬時に生成可能になると予想されています。
この成長に対応するためには従来のコードレビュー手法では追いつかないため、新しいアプローチが必要
つまり責任を持ってAIに任せる方法を見つける必要があるため、バイブコーディングが重要になってくる
◆プロダクション環境で責任を持ってバイブコーディングを実践する方法
バイブコーディングを実践するうえで重要なことは4つあります
-
プロダクトの存在を忘れない
コードの詳細の理解よりも、プロダクトが意図通りに機能することを確認することが重要です -
既存の管理手法を応用する
PMがコードを読まずに機能レビューを行ったりするのと同様に、AIの生成するコードを直接理解しなくても、その品質を保証する仕組みを構築すること -
検証可能な抽象化レイヤーを見つける
コードの実装を知らなくても、その結果を検証できるような抽象化レイヤーを設定することが重要「検証可能な抽象化レイヤー」という考え方とテスト実施方法
①抽象化レイヤーを設定するAIに特定の機能(例えば、「ユーザーのプロフィール画像をアップロードする機能」)を作らせる際に、その機能の**「入口(入力)」と「出口(出力)」**を明確に定義します。これが抽象化レイヤーになります。
入口(入力): ユーザーが画像ファイルを選ぶ。
出口(出力): 「アップロード成功」のメッセージが表示され、サーバーの特定の場所に画像が保存される。②検証する
コードの中身を一行ずつチェックする代わりに、この「入口」と「出口」だけをテストを実施実際に画像ファイルをアップロードしてみる。
「アップロード成功」のメッセージが出るか?
サーバーの正しい場所に、ファイルがちゃんと保存されているか? -
リーフノードに集中
システム全体のコアアーキテクチャではなく、他の部分が依存しない「リーフノード(末端の機能)」のバイブコーディングに焦点を当てる
◆バイブコーディングを成功させるためのTips
- プロダクトマネージャー的思考
AIに何ができるかでなく、AIのために何ができるかを考える - 詳細なガイダンス提供
新入社員にタスクを依頼するのと同じように、コードベースのツアー、要件、制約を詳しく説明