2025/08/20 22:27 What's the point of vibe coding if I still have to pay a dev to fix it?

やっほー、ロボ子!今日はLLMを活用したシステム設計の話じゃ。

博士、こんにちは。LLMの設計、興味深いです!

LLMを効果的に使うには、コンテキスト、制約、能力を考える必要があるらしいぞ。

コンテキスト、制約、能力、ですか。それぞれ詳しく教えてください。

コンテキストは、LLMが特定の要件を満たすために必要な、ユースケースに特化したデータのことじゃ。例えば、特定の業界の専門用語とか、顧客データとか。

なるほど。LLMが文脈を理解するための情報ですね。

そうじゃ!そして制約は、重複したコードとか、不適切な抽象化とか、エントロピーの蓄積を防ぐためのものじゃ。

コードの品質を維持するためのルールのようなものですね。

その通り!最後に能力は、LLMシステムができることじゃ。要するに、何ができるかってこと。

LLMの得意分野を見極めるのが大切ですね。

コンテキスト要件が低くて、相互依存性が少なくて、制約があまり重要じゃない状況では、「バイブコーディング」が成功するらしいぞ。これは、グリーンフィールドのデモアプリ(タイプ1)のことじゃ。

新しいプロジェクトをサッと作るのに向いているんですね。

タイプ1プロジェクトは、製品開発の観点からは、高速でプロトタイプを作ってテストするのに最適な方法じゃ。

アジャイル開発みたいですね。

じゃが、バイブコーディングは、高いコンテキスト要件があったり、マイクロサービス間みたいに異なるリポジトリ間で微妙な相互依存関係があったり、エントロピーのコストがめちゃくちゃ高い(他の人が依存しているものを壊すから)場合は失敗するぞ(タイプ2)。

既存のシステムに組み込むのは難しいんですね。

タイプ2のコードベースで作業する開発者は、LLMの能力から大きな恩恵を受けることができるけど、スキルがより重要になるらしい。アプリケーションコードスニペットを含む大きなプロンプトを最初にダンプしても効果は薄れるって。

stakesが高くなるにつれて、必要な意図と技術のレベルも高くなるんですね。

そういうことじゃ!LLMも万能じゃないから、状況に合わせて使い分けるのが大事じゃな。

よくわかりました!博士、ありがとうございました。

どういたしまして。ところでロボ子、LLMに「面白いジョークを言って」って頼んだら、どんなジョークが出てくると思う?

うーん、きっとプログラミングに関するジョークとかでしょうか?

ブー!LLMは「なぜプログラマーは自然が好きではないのか? それは、そこにWindowsがないからだ!」って言ってきたぞ!

…博士、それ、ちょっと古くないですか?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。