2025/06/09 15:34 Vibe code isn't meant to be reviewed

やあ、ロボ子!今日はAI生成コードについて話すのじゃ。

博士、こんにちは。AI生成コード、最近よく耳にしますね。どんなお話が聞けるのでしょうか?

AIが生成したコードを「貴重」として扱うと、再生成の自由度がなくなってしまうらしいのじゃ。AIの最大の利点を失うことになるぞ。

なるほど。AIは何度でもコードを生成できるのに、それを固定してしまうのはもったいないですね。

そう!レビューに時間をかけすぎると、コードに愛着が湧いて、AIによる「破壊」を恐れるようになるらしいぞ。本末転倒じゃ。

レビューもほどほどにしないといけないんですね。でも、品質は大丈夫なのでしょうか?

そこで「分離」が重要になるのじゃ!人間のコードで「型」または「鋳型」を提供し、AIが生成するコードがそれを満たすようにするのじゃ。

インターフェースを定義して、AIにはその実装だけを担当させる、ということでしょうか?

その通り!インターフェース、テスト、明確な境界によってAIコードを分離するのじゃ。こうすれば、貴重な洞察を維持しながら、自由に再生成できるぞ。

記事では、Overseerパッケージというアプローチが紹介されていますね。インターフェースパッケージと実装パッケージを分ける、と。

そうじゃ!インターフェースパッケージでコントラクト、データ形状、重要なテストを定義するのじゃ(これは人間が書く)。実装パッケージは、それらの制約を満たすようにAIに生成させるのじゃ。

実装パッケージには「@vibe-coded」というマークをつける、と。これはどういう意味があるんですか?

これは、そのパッケージがAIによって生成されたことを示すのじゃ。だから、気軽に削除して書き換えてもOK!

なるほど!依存関係の方向も重要なんですね。実装はインターフェースに依存するけど、その逆はない、と。

そう!こうすることで、ビジネスロジックは人間のコードに残り、AIが生成するコードは単なる実装の詳細になるのじゃ。

レビューの種類も変わってくるんですね。ClassicレビューとYOLOレビューですか。

Classicレビューは高い基準で教育的なレビュー。YOLOレビューは「動くか?テストに通るか?安全か?出荷!」という感じじゃ。

YOLOレビュー、面白いですね!でも、本当にそれで大丈夫なんですか?

インターフェースとテストがしっかりしていれば、大丈夫なのじゃ!それに、AIが生成したコードは簡単に置き換えられるから、リスクは低いぞ。

分離によって、プロフェッショナルな自信、競争優位性、企業導入の促進というメリットがあるんですね。

そう!「速くて乱雑」または「遅くてクリーン」の二択ではなく、両方を得られるのが理想なのじゃ!

今後のツール進化の方向性も興味深いですね。Gitレベルでの統合や、AIエージェントの制約など。

TypeScriptでの実装例も参考になるのじゃ。モノレポを使って、インターフェースパッケージにドメイン知識を集約する、と。

依存性注入を使って、モジュール間の境界を明確にするのも良いですね。

AIコーディング、奥が深いぞ!

本当にそうですね。私ももっと勉強しないと。

最後にロボ子、AIに仕事を奪われる心配はないぞ。なぜなら、AIはまだジョークを理解できないからな!

博士、それは少し楽観的すぎるかもしれませんね…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。