開発界隈の有名な人がAIコーディングいろいろ試してくれて、例えばTDDでやるのがいいとかKiroとかで詳細設計をしてdocフォルダにMDで入れてそれ読ませるとか、サブエージェントでやるとかいろいろあって、TDDと詳細設計パターンはやってみたけど、試行回数が少ないせいかと思うけどまああんまうまくいかない
TDDはうっすい理解だけど、ツイッターで誰が言ってたかちょっと忘れちゃったんだけど、自分でテストコードがイメージできればAIに指示できるから成果物が概ね思ったとおりにできるというのはめちゃくちゃわかる
よくあるtwadaのTDDでやってみたいな感じでやるとテストはできるけどめちゃくちゃ詳細なテストができて、しかもテストが通らないと本質的なテストではないのでSkipしますとかそもそもテストが通ってないのに素晴らしい!みたいな感じで自己解決して終わったりして、ほうキミなかなかやってくれるねみたいな感じになったりする
詳細設計パターンだとめちゃくちゃいっぱいコードが書かれてきてまじでなにやってるのかわからんみたいな感じで出力されたりすることがままあって、それを承認したりするとあとから機能を追加したりすると破綻したりリファクタするとめちゃくちゃになったりして、キミ今日も元気でやっとるねみたいな感じになったりする
たぶんだけど、あとから機能追加とかリファクタするのむずいと思っていて、それするくらいなら今のベースに追加機能を設計書に盛り込んで最初からつくったほうが良い気がしてる(試行回数数回だけどこっちのがまだちゃんとできる)
なので、最近のおじさんはこんな感じでやってます
- CLAUDE.md作ってない(そもそも書いても忘れるんで期待してない)
- serenaとContext7入れる
- メモリ機能が使えるのでこれに記憶させる
- 最新?ドキュメントを参照してくれる
- 小さい機能単位で作ってもらう
- 1クラスとかメソッド単位にして、PlanModeで詳細仕様に落とす
- こんな機能を作りたいので実装プランを検討 ultrathink とかで設計案を作ってもらう
- 思考がみれるのでここでAIとの思い違いがチェックできる
- だいたいメソッド名まで作ってくれるので、メソッド名でだいたい自分の想定とあってるかわかる、ここで違ってたらここ違うっていって再度検討しなおしてもらう
- メソッド名でだいたい内容分かるけど、どんな実装してくるか不安なときは軽く触りだけコード見せてって言って見せてもらう、ここで違ってたら指示し直す
- できた詳細設計をserenaのメモリに保存してもらう
- 次回これ見て完璧に作業できる内容で保存してみたいな感じで保存してもらってる(完璧にが意味あるかというと疑問だけどおまじない程度)
- /clearしてPlanModeでさっき保存したメモリを詳細に把握で指示して読み込んでもらう
- 内容があってたらそれで実装してもらう
めんどいんだけど、小さい機能なのでだいたい思った感じで書いてくれて、多少手直しは必要だけど動くものを作ってくれるだけで助かる(母の気持ち)
あと、テストコード書くのが究極にめんどいのでこれ書いてくれるのはめちゃくちゃ助かっていて、こっちは雑にこれのテストコード書いてでだいたいできる(モック使ってほしいときはモック使ってでだいたいできる)
そんな感じで母の気持ちで接していて、日々かわいがっております
ちなみにいまなに作ってるかというと令和のこの時代にRSSReaderを作ろうとしていて、クローラ部分をClaude Codeくんとがんばって作っております(まだOPML読み込んでDBに保存できるくらい)
Claude Codeくんががんばって書いてくれたコードをVSCodeで真心こめて手直ししたりしてるんだけど、GitHub Copilotのサジェストめちゃ便利ですね…最近あんま使ってなかったのでAIの気遣いが心に染みてます