一括リファクタリングで大破損!AIに失敗と教訓を覚えさせたら、バイブコーディングが進化した話
はじめに
最近はいかにAIを使って楽するかばかりを考えているChisato🎮️です。
この記事では、Claude CodeとSerenaを使った「バイブコーディング」での大規模リファクタリング体験を紹介します。
バイブコーディングとは、AIとペアプロのように会話しながらコードを書き進める開発スタイルです。
当初は「AIに一括で任せればすぐ終わる」と軽く考えていましたが、実際には機能が壊滅するという大惨事からスタートしました。そこから、AIに失敗と教訓を覚えさせ、段階的に進めることで作業効率と成功率を高める方法へと進化させていきます。
この記事ではその過程を、失敗談から具体的な手順、得られた学びまで、包み隠さずお届けします。
対象読者
- バイブコーディングに興味があるが、効率的な進め方を知りたい開発者
- AIに「記憶」や「学習」を持たせて、継続的な改善を試みたい人
1500行超のモンスターと向き合うことになった日
個人開発で進めているアプリの開発を、Claude CodeとSerenaを使った「バイブコーディング」で行っています。
しかし、アーキテクチャ設計を後回しにして実装を進めた結果、1つのファイルが1500行を超える巨大化モンスターに…。(ここがすべての始まりであることは言わずもがな)
UI・モデル・ロジックは分離されていたものの、責務の異なる複数機能のメソッドがすべて同じファイルに詰め込まれていました。この構造はリファクタリングの天敵。参照が複雑に絡み合い、少しの修正で依存関係が崩れやすい状態です。
「AIに一括で任せれば早く片付くだろう」と軽く考えた私は、この時まだ地獄の入口に立っていることに気づいていませんでした。
第一幕:一括リファクタリングで機能全滅
最初は「このアーキテクチャにしたいから全部まとめて綺麗にして!」とAIに指示。
結果、ビルドは通り、アプリも起動しました。
しかし、機能を触ってみると――何一つ動かない。
これまで作った機能はどこへ…? 実際の教訓メモ(後述します)には「60+メソッドが未実装」と冷酷に記録されていました。
原因は明白で、一括リファクタリング時に依存関係や参照先を誤り、大量の機能がごっそり抜け落ちていたのです。
第二幕:AIに失敗を覚えさせる
ここで登場するのがSerenaです。
私はSerenaに、今回の失敗の原因や再発防止のための教訓を記憶させ、さらに安全に進めるための「リファクタリング計画」を作らせました。
記憶させた教訓の一例はこうです。
段階的リファクタリングの重要性
• 一括変更は危険:全体を一度に変更すると予期しない機能喪失が発生
• 機能単位での移行:1つずつ移行し都度動作確認
• 並行運用:新旧を並行稼働させながら段階的に切り替え
こうして「一度にやらせない」という方針が固まりました。
第三幕:安全運転モードでのバイブコーディング
新しい進め方は、次のサイクルを繰り返すだけです。
- 1ステップ分のリファクタリングを実施
- 動作確認を行う
- OKならコミットし、完了を記録
- 次のステップへ進行
失敗があれば「教訓メモ」や「バグメモ」に追記し、次回以降の提案に反映します。
こうすることで、同じ失敗が再発しづらい環境になりました。
実際のバグメモ例:
現象: 立ち位置移動後にフォーメーションコピーすると変更が反映されない
原因推測: 保存タイミングとコピー処理の競合
修正方針: コピー前の強制保存処理、または同期化
現在の戦況:Phase 11の正念場
現在はPhase 11、統合テストと最終統合まで進んでいます。
この段階になると再び機能破損が発生しやすくなりますが、そのたびに新たな教訓が蓄積され、より強固なリファクタリングが進行中です。
AIとの長期戦は予想以上に根気がいりますが、「共に成長している感覚」が得られるのは大きな収穫です。
実感したメリットと代償
メリット
- 少ないプロンプトで作業を継続できる
- 同じ失敗の繰り返しが減る
- コンテキストリセット後もスムーズに再開可能
デメリット
- トークン消費は体感多くなったかも(Proプランではすぐに上限くるから注意)
- ただし無駄なリトライが減るため、結果的には効率的
まとめ:AIは一括作業より「学習しながら段階実行」
今回の最大の学びは、**「AIに一度に全部やらせない」**ということ。
失敗・教訓・計画をAIに覚えさせ、小さく区切って進める方が安全で、成果も安定します。
バイブコーディング+記憶型AIは、大規模リファクタリングの心強いパートナーになり得ると実感しました。
ただ、こうなる前にやはりアーキテクチャ等は先に整えておくのが一番賢いのも事実です。笑
ここまで読んでいただきありがとうございました!
Discussion