🔖

連載:ノリとAIで創る!バイブコーディングの実践ガイド

に公開

1|バイブコーディングとは何か?〜AIと"ノリ"で開発する時代の幕開け〜

はじめに

前回、

コードを書く時代は、もしかすると終わりを迎えつつあるのかもしれません。AIと自然言語によってアプリを"ノリ"で作る──そんな開発スタイルが、今めちゃくちゃ流行ってるのをご存知でしょうか🤔?

バイブコーディングは、前回の記事でご紹介した、AIドリブン開発の一つの形態、あるいはその進化形と捉えることができます。AIドリブン開発という大きな枠組みの中で、特にコード生成にLLMを重点的に活用し、より直感的で迅速な開発を目指すアプローチといったところでしょうか?

「バイブコーディング(Vibe Coding)」と呼ばれるこの手法は、2025年初頭に元Tesla・OpenAIのアンドレイ・カルパシー氏が提唱したことで、一気に注目を浴びました。その中心にあるのは、構文やロジックの厳密な設計ではなく、"意図"と"雰囲気(vibe)"をAIに伝え、コードを共創していくという開発スタイルです。

まさに私のためにあるような?このコーディングスタイルはCursorなどのAIエディタと相性がよく、ざくざくと機能が実装されていくので私としては小気味よいこの開発スタイルにハマ 🎯っています。
(というかうわー最高じゃんこれっと思って実践してたら「バイブコーディング(Vibe Coding)」っていう名前が付けられていただけ?)

前回はAIドリブン開発の概要に触れましたが、今回はAIドリブン開発の中でも重要なファクターであるバイブコーディングについて触れると共に何回かにわたってバイブコーディングの実態、実践方法、メリット・デメリット、ツール比較、事例、そして未来の開発像までを多角的に掘り下げていきたいと考えてます。このスタイルの開発スタイルをぜひ読者の皆様にも知っていただきたいと考えています。第1回では、そもそもですが、このバイブコーディングの原点である定義・起源・背景を整理し、なぜ今このスタイルが台頭しているのかを見ていきましょう。

バイブコーディングとは?

バイブコーディングとは、開発者が自然言語でAI(主にLLM)と対話し、実装コードを生成・修正・デバッグさせるスタイルを指します。

最大の特徴は、開発者が"書く"という行為から一歩引き、「こういうのが欲しい」と"雰囲気"で伝えることに集中できる点。たとえるなら、エンジニアが「演奏者」から「ディレクター」「キュレーター」に役割をシフトするような感覚です。

この"ノリ"重視の開発スタイルは、まるで音楽の即興演奏やDJプレイのように、AIとのテンポの良い対話を通してアウトプットを紡いでいくものです。

バイブコーディングの実践例

私が個人で開発している英語のメルマガを日本語に翻訳と要約をしてくれるサービスの開発のスクショです。

Cursorで具体的に機能の開発を指示したのですが、指示を出したプロンプトは友人に依頼するかのような雰囲気を伝えるこんな感じのプロンプトを投げただけです。

「このメールの本文をOpenAIに投げて翻訳と要約をAPIにお願いして、でてきた内容をさらにDBに保存するようなプログラムを作りたいです。アーキテクチャを考案して」

バイブコーディングの実践例2

こちらは、出てきたコードのアウトプットにさらに修正をお願いしたときのスクショです。
ばっくりとタメ口で「うーん。要約は日本語でやってほしいなあ。」これだけで修正してくれます。

なぜ今「バイブ」が来たのか?

背景には、GPT-4やClaudeなど、LLMの飛躍的進化があります。いまやAIは、自然言語での指示から、構文的に正しいだけでなく、文脈や設計意図まである程度反映したコードを出力できるようになっています。

カルパシー氏はこの現象を「AIが"あまりにも良くなりすぎた"からこそ生まれた自然な進化」と捉え、次のように語りました:

"コードの存在すら忘れろ。バイブに身を委ねよ。"

ちょっと何言ってるかわからないですよね・・・エンジニア畑の長い人であればあるほど意味がわかりません 🤷‍♂️

端的にいえば、コードそのものへのこだわりよりも、「何を作るか」に集中する時代が来たということです。

さらに言ってしまえば、どのプログラミング言語で書くか、どのフレームワークを採用するかということすら意識しない「プログラミングコードの使い捨て」の時代が来るまであると私は考えています。

プログラミングをするうえで大事にされていた「保守性」「再利用性」といった人間がプログラムを管理するうえで大事にしていたこともプログラムが使い捨てでいいのであれば、LLMが都度作るのであれば気にしないでいいということになります。

単なるAI支援ではない、"文化"としてのバイブ

一部では「AIによるコーディング支援の言い換えでしょ?」という指摘もあります。しかし、バイブコーディングは単なるツールの使い方ではなく、開発スタイル全体のリフレームでもあります。

バイブコーディングの特徴

  • 即興性とフィードバックループの速さ
  • 構文より意図を優先する開発態度
  • コードレビューを最小限にするラディカルな受容姿勢

これらは、開発コミュニティに"ノリ"や"リズム"を重視する新しい感性をもたらしており、すでにミームやライフスタイルとしての側面も帯びています。

バイブのグラデーション:全受容から現実的運用まで

もちろん、誰もがカルパシー氏のように「コードを見ずに信じる」わけではありませんし、私も信じてないです😅

バイブコーディングには、次のようなグラデーションがあると言われています:

タイプ 特徴 適したケース
ラディカル型 AIの生成物をそのまま受け入れ、コードレビューも最低限 プロトタイプ開発、個人開発
協働型 AIをアシスタントとして活用し、出力をレビュー&調整 チーム開発、中規模プロジェクト
保守型 一部の定型処理に限定してAIを活用 大規模プロジェクト、既存システムの保守

どの層でも共通するのは、"低レベルの実装にかける認知コストを下げ、本質的な問題に集中する"という思想です。

私なんかは協働型と呼ばれるタイプで開発をしています。エージェント型のDevinくんに試しにコードを作らせてみたところ、指示を出してからの作業に中々難しい面もあったり、ちょっと玄人な話ですが、Providerパターン、Factoryパターンでコードを組んでほしいといった要望はCursolを使って指示を出していても、かなり具体的にプロンプトを投げていかないと再現できないという感じでした。
(そもそもですが、デザインパターンに私が固執してる時点でバイブコーディングじゃない!っという心の声が自分の中で聞こえてくる気が、、、😅)

バイブコーディングの実践例3

他のLLMを環境変数を変えるだけでどれを使うか変更するようにしたくてプロンプトを投げてます。具体的にどの部分を変更したいのかをCursorで指定しつつプロンプトを投げる感じです。

「この具体的にAIで要約と翻訳してるじゃん?これを将来的にgeminiやclaudeにスイッチできるように抽象化とライブラリ化したいんだけどできる?」ただ、このぼんやりとしたプロンプトだけではうまくいかず、このあと数回会話して調整して完成に導きました。

でも、自分ひとりでコツコツつくるよりかは全然開発スピードが違います!

バイブはただ「楽をするため」じゃない

バイブコーディングの本質は、「手を抜くこと」ではなく、「集中する対象を変えること」にです。
テレワークで自宅でAIにコードを書かせて浮いた時間で、Netflixを見る時間やゲームをやる時間を増やすということではありませんよ〜 😢

AIにコードを書かせることで、開発者は:

  1. 何を作るべきか?
  2. なぜ作るのか?
  3. どんな体験にしたいのか?

という高次な問いに集中できるようになります。

それはまさに、開発者が1つの機能を開発していく"コーダー"とから製品のすべての開発を自分一人でやっていく"プロダクトディレクター"へと進化していく過程とも言えるのです。

ただ、コードを作るという発想ではなく、どういう機能が便利なのか?どういう製品がユーザーに求めらているのかといったまだAIに回答を求めるのが難しいことを、我々エンジニアが考えてあげてAIと協働でシステムを作っていく、、、

それこそがまさにバイブコーディングの本質だと考えています。

次回予告

次回は「自然言語だけでアプリが動く!?バイブ開発の実践ステップとコツ」と題して、今回すこし触れたCursor等で実際にどのようにバイブコーディングを始めるのか、どんな工夫が必要なのかを私が実践した中でのナレッジをお伝えできればと考えています。お楽しみに✨!

NonEntropy Tech Blog

Discussion