AIにコード書いてもらっているとき欲しいもの
今日と明日は有給もらって5連休です。最近は土日がマンキンで忙しいのでちょっとリラックスするのと、生活のメンテです。
そういうわけでもう2月も中旬という頃合いですが今年初のブログになりました。あけましておめでとうございます。
AIに書いてもらっているもの
さて、お仕事でも趣味でも AIにコードを書いてもらっていいますが、私の今のステータスはこんな感じです。
- お仕事のプロダクションコードはまだ大半を手で書いている
- テストコードは 99% AIに書いてもらってる
- レビューコストが小さいものは本体実装自体 AI に任せることもある
- AIに書いてもらうかはレビューコストで決めている
- 趣味のコードは完全に AIに任せている
- どんなことができるか、最初は実験のつもりだった
- もはややめられない遊びと化している
- どんなことができるか、最初は実験のつもりだった
だいたいみんな似たような感じだろうと思います。お仕事のコードはやっぱり責任があるから、まだ手綱は離さない感じ。 趣味の方はAIをバディにして、書いたことのない領域や、時間が無いから書かなかった領域を切り開いて楽しんでいる。楽しくてしょうがない。
AIでもなかなかうまくいかない領域
根本的には乱択なので明後日の方向に走り出すというのはさておき、こういうの AI 難しいんだな、という場面がある。
特に、クライアント側の挙動は目に見えてないところが難しい。指示する側もビジュアルを自然言語で説明するのがちょっと難しい。普段、サーバサイドのことばかりなのでフロントの話に慣れてないというのもある。用語をしらないとか。
とはいえ、フロントかバックエンドかに関わらず、複数のコンポーネントが連動して動くみたいな場面でAIが挙動をつかみかねているなという場面はけっこうある。
通常は AI はコードをちゃんと読めてるのだけど、TauriアプリみたいなものでフロントとバックエンドでIPCしつつレンダラが表向きの処理しててクロスプラットフォームで動く、みたいなもののデバッグはなかなかうまくやってもらえなかったりする。
まあ、そういうときは人力デバッグでも同じだけど、自分の場合はとにかく printデバッグさせている。AIがここが悪いです、みたいに言うけどいつまでたっても期待した挙動に直してくれない時(たいていクロスプラットフォーム対応ではまる)、じゃあその悪い所にログ入れて期待通りになってるか見るようにしてもらうと、printデバッグによる出力を見てうまくいってなくて仮定が間違っていることに気づいてくれる。人間側でその間違いを先回りして指摘できれば話が早いが、それだと AI で開発をドライブできない。人力が天井になってしまうし、そもそも人力でもやることは同じで、AIによる時短ができなくなる。
というわけで、人力をブレークスルーする鍵は print デバッグ的ななにかだと思っている。
print デバッグする何か
- つまり callgraph をシュッと吐いて欲しい
- on/off 簡単にできたい
- 各言語で欲しい
- ファイルとかの保存場所をいちいち教えなくても AI が知っていて欲しい
みたいなものが欲しい。
いまのところ printデバッグするのも言ったらやってくれるけど、出力がでかくなる場合に AI に受け渡すのが面倒だったりするので全体的に自動的にやれたいのだけど、そういうのどっかないですか。各言語で個別に callgraph 吐くの自体はあるのだけど。
なんかいいのあったら教えてください。