はじめに
こんにちは、高2の平部員です。今回の部誌ではバイブコーディングについて書きたいと思います。昨今、AIが台頭してきており、その影響を顕著に受けている職種の一つにエンジニアがあります。この流れの原因が自然言語のみで操れるバイブコーディングなんです。大規模言語モデル(LLM)によるコーディング技術によってwebサイトやゲームが日常の言語のみでも簡単に作成できる開発手法をバイブコーディングといいます。現在高度なものを作ろうとすればエンジニアの高度な技術が必要になりますが、今後AIが進化していく上でAIも高度なものを作れるようになっていくのではないかと考えられています。また、今後のAIが強くなっていく世の中で最も必要な能力の一つにAIを扱えるかというものがあると思います。その能力を養う上でバイブコーディングをやってみることはとても有意義であると考えます。そこで、ここではバイブコーディングの構造やAIの扱いのコツについて書いてみようと思います。加えて、最後に自分で少しバイブコーディングをやってみようと思います。
インフォメーション
バイブコーディングとは
バイブコーディングとは、人間が手作業でコードを構築していこのではなくAIに自然言語(人間が日常的に使う言語)を使って大まかに指示、対話をしながらアプリケーションやプログラムを構築する新しい開発手法です。メリットとしては圧倒的に早い開発スピードやエンジニアではない人でもある程度容易に開発することが可能になるという点です。また、ここでは主なメリットではないですがAIをうまく使えるようになる、AIの構造をよく理解することができるということを強調したいと思います。一方、デメリットとしてはセキュリティーや品質のリスクがあるとされています。
知っておくべきこと7選
1.LLM(ChatGPT,Claude,Gemini) 一般にAIと言われるものです。これらにやりたいものの雰囲気を伝えるだけでもある程度のものを作ることができます。
2.コーディングエージェント(Codex,Claude Code,GeminiCLI) AIを使ってプログラミングや開発環境を自分のパソコンの中で自律的にすすめるツールです。つまりLLMの進化形です。LLMを出している会社がそれぞれコーディングエージェントを出しています。
3.IDE(総合開発環境)(VSCodeなど) 簡単に言えばコードを書くためのエディターです。ただ文字がかけるだけではなく、プログラミングがやりやすくなる様々なプラグインが備わっています。例えば、書いたコードでコンピューターを動かせるようにするコンパイラ・ビルドやバグを見つけるデバッガ、文字の色付けなどで入力を助けるコードエディタなどがあります。
4.バージョン管理(GitHubなど) ファイルの管理をするようなものです。もちろんこの部誌を管理する際にも使われています。
5.データベース(Supabaseなど) ゲームをしているとセーブをすることがあると思います。そのセーブデータはゲームのソフトウェアのデータとは異なります。それを保存しているのがデータベースです。
6.セキュリティ LLMだけをweb上で使っている時点ではセキュリティの危険性はあまりないですが、コーディングエージェントを使い始めると自分のパソコンの中で動くものになるのでセキュリティの危険性が高まります。
7.デプロイ(Vercel+Supabase) 2-6のものはすべて自分のパソコンのみで完結しているものですが、web上に自分の作ったものを配信したいといった場合にはデプロイ(配備)する必要があります。
AIを扱う上でのコツ
バイブコーディングをする上でAIをうまく使うことは必須です。ここでは有名な5つコツを紹介しようと思います。
1.目的を明確にする AIが何をやるべきかを正確に認識することができ、効率的にタスクをこなしていってくれます。
2.段階的に指示を出す 一度にすべての機能を伝えるのではなく基本機能から段階的に指示していくことで自分の思い通りのものを作ることができるようになります。
3.制約条件を明示する AIができることは無限大です。ある程度範囲を絞ることによって自分の理想に近い物が作れると思います。例えば、デザインの方向性やフレームワークなどを伝えると良いでしょう。
4.参考情報を添える 参考の物を伝えることは対人間だけでなく対AIであってもとても重要です。いきなりそれっぽいものを作ることができるので最終的な完成物の精度が上がります。
5.テストをする AIが人間に勝てる最大のポイントはスピードと試行回数です。この最大のメリットを活かすには何度もテストをすることが大切です。
バイブコーディングの活用事例
1.SaaS(webサービス)のMVP(試作品) 本格的なシステム開発をする前に試作品をバイブコーディングを使って作ることで事前に顧客のフィードバックを得て、顧客の要望通りのものを作成することができる様になります。これが最も一般的な使い方です。
2.LP(ランディングページ)の生成 活用事例1では本格的なwebサービスのデモ版を作るということでしたが、活用事例2では次元を下げてwebサイトを作ります。webサイトであればバイブコーディングであっても十分公開可能な範囲のものを作ることができます。しかし、マトリックス(格子)型構造やデータベース型構造など複雑なwebサイトを作ることは難易度が高いのですが、ツリー(階層)型、あるいはシーケンシャル(直線)型構造であれば作ることができます。
3.自分の欲する機能のついた自分向けアプリの作成 みなさんがバイブコーディングを知って一番最初にやりたくなる活用法だと思います。食事管理アプリや会社のデータ整理アプリなど可能性は無限大です。
バイブコーディングの今後の展望
1.開発ができる人の増加 アイディアを考えたりシステムの工夫をすることが得意な人がいてもコーディング技術がないことによってその力を十分に活かすことができないということがバイブコーディングの進化によって少なくなることが考えられます。
2.開発者の高次化 開発の初期段階で高度な知識を持つ開発者を使うのではなく後半に彼らを持っていくことで効率的にタスクをこなしていくことが可能になることが考えられます。つまり、開発者がただの開発者ではなく管理者、監督者になっていくのではないかと思います。
3.プロトタイプ制作から本番運用へ進化 先ほども説明したように現在のバイブコーディングのレベルではプロトタイプが限界です。しかし今後進化していくにつれ、一発で本番レベルのものができるようになるのではないかと思います。
4.教育現場への導入 自然言語のみで『開発』を体験できるため想像力などを養うことができ、非常に有力な活動になりうると思います。
バイブコーディングの今後の課題
1.セキュリティ問題 セキュリティへの意識の低いAIでは人間世界のセキュリティレベルに合わせた開発ができるかどうかが課題です。
2.著作権や倫理観の問題 著作権があるものを勝手に使ったり、ライセンス基準を満たさないで開発してしまうことが現在ではよくあります。今後もおそらく自動で完全検知することは難しいと思います。
3.人間が開発にかかわらなくなってしまう AIが開発の大部分を担うようになってしまうことで開発がブラックボックス化してしまい、AIの独り歩きの状態になってしまう可能性があります。また、もっと大きな視点で言っても、バイブコーディングによってAIが人間を凌駕するシンギュラリティがより早まってきてしまうかもしれません。
制作手順
開発の成果物は文化祭当日に展示したいと思います。 ここでは実際にやって見るときの手順を示したいと思います。
1.制作へ準備 作りたいものの目的や構想を大まかにAIに伝えます。事前に仕様書などを用意しておくか参考アプリのスクショなどを伝えておくと良いでしょう。
2.基礎コードの生成 土台となるコードを一通り生成させます。最初からたくさんの機能をつけるよう指示するのではなく最小限の機能からつけるように指示します。
3.試し実行 生成されたコードを自分のpc環境で動かしてみます。ソースコードとにらめっこするのではなくユーザー目線での確認に徹します。
4.エラーへの処理 エラーへの処理もAIで完結させます。AIへエラーの処理をしてほしい場合は文章ではなくスクショを貼り付けて状況を見せるほうが良いでしょう。
5.小刻みな修正 指示、実行、確認を小刻みに実行し生成物をより良くしていきます。一度に多くのタスクを投げるのではなく1チャット1作業で進めるのが良いでしょう。
6.保存 うまく動いたタイミングでこまめに保存しておくことが良いでしょう。AIはいきなり見当外れな修正をしてしまうことがあるので、巻き返せる保険をかけておくことが重要です。
7.最終テストと公開 最終テストを下うえでVercelなどを使って公開します。セキュリティや個人情報に関わる部分は人間がしっかりチェックするほうがよいでしょう。
おわりに
最後まで読んでいただきありがとうございました。ここまで読んでいただければバイブコーディングのことがよくわかったのではないかなと思います。**バイブコーディングをつかって生成した制作物は文化祭当日に展示したいと思います。**なお、この文章には一切AIは使われていません。