ノリを許すな
ある程度以上の規模のプロジェクトをAIを使って開発するときには、Vibe Codingはするべきではない。
いや、違う。AIにノリ(Vibe)でコーディングすることを許してはならない。
Vibeでコーディングして良いのは、我々、人間だけだ。
この記事は、いかにして、AIのノリをつぶし、人間がノリノリ(Vibe)でコーディングするのか、その道標である。
any型を許すな
とりあえず、TypeScriptのプロジェクトの場合、絶対にany型を許してはならない。
せっかく型のある言語を使っているのに、any型を使うのはバグの温床を撒き散らすことになる。
あいつら(AI)は、ことあるごとに手を抜こうとしてくる。型を書くのを面倒くさがって、すぐにany型に逃げようとする。
だが、それを許してはならない。絶対にだ。
いちいち型を指定するのは面倒だ? 面倒な思いをするのはAIだけだ。AIに型を書かせれば良いだけだ。
だから、CLAUDE.mdには「any型は許さない。絶対にだ。」と書いておこう。
やつらに間違った変更を許すな
AIにコーディングを任せっぱなしにしていると、いつのまにか、きちんと動いていたはずのコードが動かなくなっていることがある。
深く考えずにノリでコードを書き換えるから、こうなるのだ。
これを防ぐには、TDD(テスト駆動開発)にしなければいけない。
ある程度コードが動くようになったら、テストを書いて、正しい動作をAIが判断できるようにしてやるのだ。
そして、事あるごとにテストを実行させる。
テストを書くのが面倒くさい? そんなものは、AIに書かせれば良い。AIを甘やかして、人間がテストを書いてあげる必要などない。
片っ端からテストしていると、テストの数が増えてくる。
そうなると、やつら(AI)は手を抜こうとしてくる。
具体的には、「97%のテストが通っています! 通らないテストはたいしたことじゃないですから大丈夫」とか、ふざけた事を言い始める。
もちろん甘やかしてはダメだ。100%通させろ。
テスト環境だと無理、とか言ってくる場合は、きちんと「なぜ、テスト環境だとテストしにくい」のかを説明させて、納得がいくものなら仕方がない場合がある……かもしれない。その辺は、各自、自分で判断して欲しい。
設計をしっかりやる
設計は手を抜かずきちんとやるのが重要です。
記事の主題とは、何の関係もないんだけどね。うん。設計大事。
設計はAIにやらせて良いんじゃないかな。知らんけど。
ただし手を抜いた設計をしてきたら文句を言うのが大事。
おわりに
この記事はノリ(Vibe)で書いてるので、まとまりがないかもしれませんが、あしからず。
人間はノリでいいんです。そういう記事です。