昨年チームがAIプログラミングツールを使い始め、皆がコードを書くのが速くなったと思った。しかし一年が経つと、奇妙な現象に気づいた。コードを書く時間は確かに減ったが、Code Reviewの時間は長くなっていた。以前はPRをレビューするのに、論理を一通り見て二つの問題を挙げれば終わりだった。今は変更のたびに繰り返し確認しなければならない:この部分はAIが書いたものなのか人間が書いたものなのか?境界条件は処理されたか?隠れた性能問題はないか?レビューが終わると、自分で書き直すよりも疲れている。
一、AIでコードを書くのは速いが、レビューは遅い
今年初め、私はチームの核心プロジェクトを受け持った。同僚数人はCursorとCopilotを使っており、生産性は確かに高い。しかし私がレビューするとなぜか違う気がした。
例を挙げると、ある同僚が機能モジュールを提出した。コードは動作していたが、一行ずつ見ると、一つのコンポーネントに三つのuseEffectが挂けられていて、そのうち二つは機能が重複していた。作者は注意していないと言い、AIの自動補完が原因だと言った。このような問題は常態化した:AIが生成したコードは動作するかもしれないが、構造は混乱し、論理は重複し、境界判断が不足している。
以前人間が書いたコードは、作者の考え方を感じられる。AIが書いたコードはまるでごった煮で、何でもあるように見えるが、不快だ。レビューの際、論理が正しいかだけでなく、余分な部分を削除したり、不足している部分を補ったり、構造を整理したりする必要がある。これらを全部やると、時間が思わぬほど倍増する。
二、いくつかのAIコードの「通病」
私はレビュー時によく見かけるAIの痕跡をいくつかまとめた:
1. 論理は正しいが、境界がない
AIは主な流れをスムーズにするのが得意だが、空ポインタやタイムアウト、並行処理などの問題を自発的に処理するのはあまり得意ではない。例えば、一つのクエリインターフェースでは、AIはdata.list.map(...)と書くが、dataが空かどうかを判断しない。レビュー時には、それを補ったりdata?.list?.map、if (!data) return nullしたりする必要がある。
2. 過度に設計する、簡単な問題を複雑化する
は時々、非常に簡単なことを特別に「高級」に見せてしまうことがある。例えば、防抖を追加すると、それに完全なカスタムフックを書いて、useRef、useCallback、useEffectを使って、四五十行も書く。しかし、実際にはdebounce関数だけが必要である。このようなコードをレビューする時、まずその実装を理解してから、それが過剰かどうか判断する必要がある。
3. 注釈と命名は「機械翻訳」のように見える
AIが生成する変数名はdata、items、configのように、具体的な意味がわからないことが多い。関数の注釈は存在しないか、「データを取得する」といった無駄なものになっている。レビュー時には、意味のある命名に変更するか、必要な注釈を追加する必要がある。そうしないと、次の人には理解できない。
3、私の個人的な戦略:どうやってレビューを痛みなくするか
長くして、いくつか効果的な方法を見つけました
- AIがAIを審査する:PRを提出する前に、作者にコードを別のAI(別のモデル)に再審査してもらうように要求し、提案に基づいて一度修正します
- 差別化対応:ツールクラス、ユニットテスト、ドキュメントコメントはAIに任せられます;核心的なビジネスロジックは手書きまたは深く修正するのが良い
- 小さな規範を確立する:例えば「useEffectにはクリーンアップ関数が必要」「API呼び出しにはloadingとerror状態が必要」。AIは必ずしも遵守するとは限りませんが、レビュー時に迅速に照らし合わせることができます
これらの方法は問題を完全に解決できませんが、少なくともレビュー時間を許容範囲に戻すことができます
4、反省
私は今、AIプログラミングに対する態度が矛盾している。一方で、実際に繰り返しの作業を節約してくれているが、他方で、レビューの段階に負担が移ってしまった。以前は一人でコードを書き、皆で確認していたが、今は一人がAIコードを書き、別の人にバグを見つけてもらっている。
これはAIのせいでも、ツールのせいでもない。私たちがまだAIとどう協力すればいいか学んでいないからだ。将来はもっと良いレビューのプロセスができあがるかもしれないし、AIが自分で自分をレビューできるようになるかもしれない。しかし現時点では、AIは私の残業を減らしてくれていない。ただ、残業の内容が「書く」から「レビュー」に変わっただけだ。。
五、最後に
もし同じような感じをしているなら、いいねを押して、一人じゃないことを教えてくれ。コメントで話し合い:あなたのチームはAIコードのせいでレビューが遅くなった?










