バイブ・コーディングが問題なのではない。スタックを理解していないことが問題なのだ。
あるAIツールが、かつて私に次のような設定ファイルを渡してきました:
DATABASE_URL = "postgresql://admin:SuperSecret123@db.internal:5432/app"
API_KEY = "sk-live-4f9a..."
それは動作します。それこそが罠なのです。デモは動き、レビュアーは頷く。しかし、その機密情報は、今や永遠にgitの履歴に残ってしまいます。リポジトリにアクセスできる人なら誰でもそれを見ることができてしまうのです。
私はデベロッパーではありません。システムエンジニアリングに20年を捧げてきました。私はアプリケーションが動作する基盤を構築します。ホスト、ネットワーク、そしてデータベースを構築するのです。
私がAIツールを使うとき、他の人々のように失敗することはありません。その理由を説明しましょう。
アンドレイ・カルパシー(Andrej Karpathy)は、使い捨てのプロジェクトにおける「バイブ・コーディング(vibe coding)」について語りました。これを履き違えてしまった人々がいます。彼らはコードを見るのをやめてしまいました。そして今、システムを見ることもやめてしまっています。コードを無視することはできても、システムを無視することはできません。実際に動いているのはシステムなのです。
私はAIの提案をあえて却下することがよくあります。なぜなら、モデルには運用上のコンテキストが欠けているからです。
- Operating Systems: セキュリティアプリに対して、AIはWindowsを提案するかもしれません。しかし、それはライセンス費用を無視しています。無料のUbuntuサーバーでも、より安価に同じ仕事がこなせます。
- Databases: AIはMySQLを選ぶかもしれません。しかし、1年後の午前2時に、どのエンジンなら自分が管理できるかまでは知りません。
- Security: AIは「ログインができる」という段階で止まってしまいます。真のセキュリティには、条件付きアクセスや信頼されたデバイスが必要です。それはバイブスだけで見つけられるものではありません。
- Networking: AIはしばしば、インターネット全体に対してポートを開放することを提案します。私はアクセスを特定の管理ネットワークのみに制限します。
AIはネットワークを「誰か他の人の問題」として扱います。しかし、実際にはそうではありません。
ハードコードされた機密情報の修正は簡単です。環境変数を使用してください:
import os
DATABASE_URL = os.environ["DATABASE_URL"]
モデルは、こちらで阻止しない限り、機密情報をファイル内に直接書き込んでしまいます。
バイブ・コーダーが失敗するのは、アプリケーションのコードがシステム全体だと思い込んでいるからです。そうではありません。アプリケーションは建物の1つのフロアに過ぎません。基礎を固めていなければ、建物は崩壊します。
AIを使うとき、私は「Xを作って」から始めることはしません。それでは本番環境で壊れるデモが出来上がるだけです。まず30分かけて、制約事項やトレードオフについて話し合います。そのロジックに基づいて、モデルに仕様書を書かせます。こうすることで、後々の膨大な修正作業を防ぐことができるのです。
問題はツールではありません。何に影響を与えるかを見極めずに変更を加えることが問題なのです。もしあなたが基礎を理解していれば、バイブスに従っても安全です。
分かれ目は、どれだけコードを書くかではありません。自分のコードが立脚しているものを理解しているかどうかにあります。
モデルが毎回間違えるために、あなたが繰り返し行っている「上書き修正」は何ですか?
出典: https://dev.to/kkierii/vibe-coding-isnt-the-problem-not-understanding-the-stack-is-4kif
オプションの学習コミュニティ: https://t.me/GyaanSetuAi