Cursor、Copilot、ChatGPT、Claude、Claude Code、Codex
だいたい見えてきたのでまとめてみる、とは言えもうAI使ってる奴らには自明のことと思う
コードの状態を説明させること、つまりリーディングの補助には非常に有効
例えば入って間もないプロジェクトで改修する際に
「この画面ってどこでてぎされてる?」
「これと似たパーツどこかで作ってない?」
「色はどうやって指定してる?」
みたいな質問には非常に精度良く答えてくれる
これを人力でやろうとすると非常に時間がかかる、特に歴史が深いプロジェクトだと無限に時間が溶けるから助かる
この恩恵を得られないのが、プロジェクトに慣れ親しんだ人だ、もう既に頭に入ってるならそんな質問をする必要もない
・コードが複雑すぎる
・主流ではないアーキテクチャ
・オリジナルのパーツを実装している、それに強く依存した書き方をしている
・プロジェクト全体を渡せない
・コードにこだわりがある
・制約が多すぎる
そこそこの規模のプロジェクトはこれで大体詰む
「これと同じようにやって」が苦手っぽい
これ言ってる人少ない気がするんだけど
LLMが特異なのは「専門家として回答する」みたいなやつなんだよね
苦手なのが「制約に適合する」みたいなやつで
一般的にプログラミングというのはルールベースが得意とされているんだけど、LLMはそっちじゃないんだよ、人間と同じなの
ルールをたくさん与えると分かんなくなる
(この得手不得手については、ちゃんとAI本人に質問したらその通りと言っていた、お試しあれ)
ちなみにPRレビューとかはそれで言うと得意なんだよね、ただ「このルールに従ってレビューせよ」はやりすぎると壊れる(工夫が必要)
自分がPLのプロジェクトなら自分の権限でやるかもしれないけど
例えば、要件定義なんかも制約充足型のタスクだから苦手なんだけど
そうなると精度落ちるんだよね
「精度落ちるかもしれない」ってタスクって任せられないんだよな
モノが出来上がっても怖くて使えないし、その時間が無駄になるかもしれないから、「自分でやったほうが早い」になる
・ちょっと精度が出ないかもしれないタスクをAIや部下に任せるか
・時間やコストをかけてAIや部下を教育(チューニング)するか
これに対する一つの解は
・精度が悪くても良いタスクを渡す
・精度が見込める得意そうなタスクを渡す
だと個人的には思ってるんだけど