在 AI 编程工具越来越普及的当下,加拿大政府的一位高级计算机科学家兼教育工作者写下了一篇题为《为什么我拒绝你的 AI 生成的 MR》的文章。他并非全盘否定 AI,而是希望厘清边界:哪些情况下 AI 代码可以被接受,哪些情况下则必须坚决拒绝。在文中,他不仅分享了自己作为团队负责人的真实困境——如何面对新人对 AI 的依赖和滥用,也给出了他在代码审查中的底线与判断标准。
有时候我会直接拒绝别人提交的合并请求(MR),甚至不做代码审查以及过多的解释,就是因为这份代码是用 AI 写的,而且写得很糟糕,反而给团队添了麻烦。在工作的时候,我经常遇到这几种情况:
删掉 AI 所生成的代码可能更好。
提交的人连这门编程语言的基本知识都不懂。
文档写得一大堆废话,完全是堆砌出来的。
前后风格不统一,乱七八糟。
写了很多“极端情况”的处理,但根本没测试,反而埋下新问题。
瞎加一些没必要的东西,或者用已经过时的工具,还不知道自己为什么要加。
如果你看到我拒绝了你的 AI 代码,而且没有额外说明,只是把你丢到这个页面来,那就是因为它踩中了上面的坑。
虽然现在有不少研究和讨论都承认 AI 在写代码时能帮上忙,但滥用 AI 也是个新问题。我们需要一些规则来识别这种情况。