はじめに
先週、レビューでボコボコにされたコードをChatGPTに投げた。
人間に聞くと気まずい。
上司に聞くと次の1on1で掘り返される。
ChatGPTなら怒らない。あまりにも最高すぎる。
そう思っていた。
返ってきたのは、こうだった。
「このコードにはいくつかの問題があります。まず、責任の分離ができていません。次に、エラーハンドリングが不十分です。また、命名が意図を伝えていません。さらに、、、」
全部、先週の上司と同じことを言っていた。
AIに指摘されると、なぜか素直に聞ける
人間に言われると身構える。
「お前に何がわかる」という気持ちが0.1%くらい湧く。
でもAIに言われると、なぜか「そうですね……」と素直になれる。
これ、なんなんですかね?
AIは私を嫌いで言っているわけじゃない。
私の過去の失敗を根に持っているわけでもない。
ただ、コードを見て、事実を言っている。
上司の言葉は同じ内容でも「評価」に直結するプレッシャーがある。
AIの言葉にはそれがない。
だから刺さるのではないかと予測しておきます。
実際にAIコードレビューをやってみた結果
3ヶ月ほど、書いたコードをまずAIに投げてからプルリクを出す習慣をつけてみた。
Before(AIなし)のプルリク:
- レビュアーのコメント:平均14件
- 「これ何してるの?」系のコメント:6件くらい
- マージまでの日数:平均3.2日
After(AIレビュー後)のプルリク:
- レビュアーのコメント:平均6件
- 「これ何してるの?」系のコメント:1件くらい
- マージまでの日数:平均1.4日
見てわかる通り、劇的に変わりましたね。
AIが指摘することのほとんどが初歩的だけど言われると直すくらいの内容だった。
つまり私は、言われれば直せることを、言われるまで直さなかったわけです。なぜか悔しい
AIに聞くと捗る場面・捗らない場面
まぁAIも万能ではないので、私なりの使い方を書いておきます。
✅ 捗る場面
「このエラー、何?」
スタックトレースを貼ると、だいたい一発で原因を特定してくれる。
Googleで検索してStack Overflowをさまよう時間が激減した。
ちなみに、Stack Overflowの質問数がAIの普及で激減したらしい。
「この書き方、もっとスッキリ書ける?」
リファクタリング案を複数出してくれる。採用するかは自分で判断すればいい。
「このコード、テスト書いて」
正直これが一番助かっている。テストを書くのが億劫で後回しにしがちだったが、
AIに叩き台を作ってもらうと「あとは修正するだけ」になって一気に楽になった。
❌ 捗らない場面
「この設計どう思う?」
コンテキストが足りないと的外れな回答が来る。
プロジェクトの背景、チームの状況、過去の経緯…エトセトラエトセトラ
そういうものをAIは知らない。
設計の相談は、まだ人間の方がいい。(まだ、いつか変わるかも…)
「このバグ、なんで起きてるの?」(再現手順が複雑なやつ)
コードだけ貼っても、実行環境や状態によって起きるバグは追いきれない。
「原因はここかもしれません」と何パターンか出してくれるが、当たり率は低い。
「〇〇ライブラリの最新バージョンの使い方は?」
知識が古い。自信満々に古いAPIを教えてくる。
公式ドキュメントを読んだほうが速い。(もしくはドキュメントを読ませるとか)
「AIに聞けばいいじゃん」は半分正解
「AIがあればGoogle検索いらない」
「AIがあれば上司に聞かなくていい」
「AIがあれば何でも解決する」
こういう意見をたまに見る。
半分は正解で、半分は違うと思っている。
AIは「知っていることを教える」のが得意で、
「知らないことを考える」のは苦手だ。
社内の雰囲気とかもそう。
私が3ヶ月使ってわかったのは、
「AIは賢い後輩」だということ。
指示すれば動く。質問すれば答える。でも判断は自分でしないといけない。
丸投げすると、自信満々の嘘をつく。
確認しながら使う。それだけで全然違うのである。
おわりに
ChatGPTにボコボコにされた私のコードは、その後、上司にほぼノーコメントでマージされた。
つまりAIの指摘は正しかったということになる。
上司に言われた同じことをAIに言われて、初めて直した。
私の問題はコードじゃなくて、受け取り方だったのかもしれない。
「AIレビュー、試したことある」「こういう使い方してる」という方、ぜひコメントで教えてください。参考にします。
いいなと思ったらぜひいいねもお願いします!