バイブコーディングでアプリをリリースし続けて学んだ、上手く開発するコツ10選
Claude Codeを使った、いわゆるバイブコーディングで、アプリを複数個作って学んだ、AIでコーディングを行う際のコツを紹介します。
手動で実装したくなる気持ちをぐっと抑えて、AIのみで開発に挑戦した際の備忘録になっています。
1. 仕様が命
AIコーディングを使わなくてもそうですが、仕様が命です。
AIコーディングの場合、コーディングが早くなるのにつられて、仕様定義までAIを使って出力されたものをそのまま使ってしまったりしますが、しっかり詳細を自分で確認をしたほうが良いです。
たいてい、AIが出す仕様は間違っていたり、想定と違う部分が多くあります。
しっかり最初の段階で、最終的な成果物がイメージできるくらいまで詳細を詰めましょう。
特に技術的にリスクがありそうな部分は初期段階でリスクを潰して起きましょう。
2. テストとビルドを必ず実施
AIコーディングの出力は、品質にかなりばらつきがあります。
ほっておくとバグの宝庫になるため、必ずテストを作成しましょう。
また、Claude Codeであれば、フックという機能があって、終了時に必ず特定のシェルを流せる機能があるので、そこでビルドとテストは流すようにしましょう。
そうすれば、問題があった際にすぐに検知できます。(そして必ず問題があります笑)
3. タスクはできるだけ細かく
一度に大きなタスクを任せると、雑な出力になり、たいてい動きません。
kiroなどの仕様作成ツールでもやっている通り、仕様策定→ユースケース策定→デザイン策定→タスク分解を必ず行いましょう。
タスクを細かくすればするほど、AIは的確な出力を返してくれます。
4. リファクタリングは頻繁に
AIコーディングはコードが爆発しがちです。
AIは自ら無駄なコードを削除することをほぼしないし、ファットなクラスになっても気にしません。なので、定期的なリファクタリングは必須です。
ファイルを分割しつつ、読みやすくてクリーンなコードを保つようにしましょう。
5. UIデザインは画像を使うとそこそこうまくいく
UIデザインの指示もAIコーディングの難関です。
面倒になって自分で直してしまうことも多々ありますが、AIに任せたい場合はイメージ図を画像で読み込ませると、そこそこ近いものを出力してくれます。
正直手動の修正は避けられませんが、大まかな実装はしてくれるので便利です。
6. AIとの会話はこまめにクリアする
AIとの会話や作業が長くなると、出力が悪くなる気がするので、私は細かくクリアするようにしています。これは検証したわけではないですが、経験としてはコンテキストはこまめに切り替えたほうが出力が意図通りになることが多い気がします。
7. プランモードと実装モードをうまく使う
Claude Codeにはプランモードというのがあって、「計画のみして、実装はしないで」といちいち言わなくても計画のみするモードがあります。粒度が大きい実装や、難易度が高そうな実装などはプランモードを使って、計画をさせて、その計画を自分で確認した後に、AIに実装をお願いしましょう。
8. サブエージェントをうまく使う
Claude Codeにはエージェントという機能があります。要は役割の切り替えですが、例えばUIデザイナーとテスターというAIの役割を切り替えて、それぞれに合ったタスクを行わせるといった感じです。これも、こまめに切り替えたほうが出力が良くなります。
9. MCPをうまく使う
MCPは出揃ってきていて、かなり強力です。MCPとはプラグインのようなもので、外部からClaude Codeに機能を足すことができます。例えば、SerenaというMCPは検索・記号操作を強化し、AIが使用するトークン量を減らしてくれます。
10. 解決できないバグはログを使う
何度やってもAIが解決できないバグに遭遇する場合があります。この場合はログの挿入を依頼して、テストを手動実行、取得したログをAIに渡すようにしましょう。詳細な分析が可能になり、バグの解決できる場合があります。
また、ChatGPTなど汎用LLMを使うのも効果的です。この部分のコードが関係ありそうというところを手動で切り出して、ログとともに聞くと適切な対処法を教えてくれることもあります。
最後に
最後までお読みいただき、ありがとうございました。
こうして見渡すと、結構人間と変わらない対処法が有効な場合も多いようです。
私は現在、個人でAIコーディングの導入や開発の課題についてリサーチしています。
もし今回の記事の内容に共感していただけたり、同じような課題意識を持つ方、またはAIコーディングに興味ある方がいらっしゃいましたら、ぜひ一度カジュアルにお話してみたいです。
情報交換だけでも大歓迎です。
お気軽にXのDMか、以下のフォームまでご連絡ください。
Discussion