バイブコーディング
- アンドレー・カルパシー
- バイブに身を任せ、指数関数的な処理を好み、コードの存在すら忘れてしまうようなコーディング
- 常に全てを承認、diffは読まない、エラーメッセージが出たらコメントなしでコピペすればたいていは解決する
- 使い捨てアプリはこれでいい
- 漢字の読み取りや入力はできるけど書けないみたいなことになりそう
- Addy Osmaniが本を書いている
- 読んで考える必要がある
- 根源的に新しい抽象化や訓練データを超える戦略は作れない
- 決定の責任は取らない
- 何を作るか、どう構造化するか、なぜ作るか、は人間の領域
- 70%は生産性向上するが、残りの30%は訓練されたプログラマの技術が必要
- Two steps back
- 妥当と思われたAIのコードによって問題が引き起こされ、それをAIで解決しようとしてもできないアンチパターン
- The Golden Rules of Vibe Coding
- 欲しいものを明確にする
- 意図と違っていないか確認する
- ジュニア開発者として扱う
- 思考を置き換えるのではなく能力を拡張するものとして使う
- チームで使い始める前に調整する
- 開発の会話で普通に使う
- Gitのコミットを分ける
- 人が書いたコードもAIが書いたコードもレビューする
- 理解できないコードをマージしない
- ドキュメント、コメント、アーキテクチャ決定レコードを優先する
- 有効なプロンプトを共有して使い回す
- 定期的に振り返って繰り返す
- Use AI as a tutor, not just an answer vending machine
やってみた感想
- AIがどういう風に思考して実装していくかを追うことで学びがある
- 点の知識が繋がる
- SQLファイルが重い→レコード数や記述量を集計
- エラーハンドリング、ログの取り方
- しばらくメンテナンスされていなかったプロジェクトの更新や引き継ぎが不十分なプロジェクトで助かる
- エンジニアがシェルスクリプトで解決していたような課題の敷居が下がった
- Kiroはバイブコーディング中に内容によってスペックコーディングを提案してくる
- スペック自体も作ってくれる
- Autonomous Background Coding Agents
- Plan
- Execute
- Verify
- Report
- AIがエラーにハマった際に戻すのはコンピューテーショナルシンキングができないと難しそう
プロンプティング
- Zero-Shot
- ただモデルにやることを伝える
- 例やガイダンスを加えない
- One-Shot, Few-Shot
- タスクを実行する前に例を示す
- Chain-of-Thought (CoT)
- ステップバイステップで考える、または最終回答を出す前に理由を示す
- 問題を分割して考える
- Role
- あるアイデンティティや役割を与えて回答させる
- 「あなたはPythonのインストラクターです」「セキュリティ分析者として振る舞ってください」など
倫理的意味
- 知的財産
- ライセンスに従ってコピーライトの表示やソースの開示が必要になる場合がある
- 類似度判定などのツールを使う
- ガードレールとセーフティネットを作る
- AI利用の意思決定をドキュメント化する