AI 代码生成是这个十年来最被过度宣传同时又最有用的开发工具。它被过度宣传是因为人们认为它取代了开发者。它之所以有用是因为它处理了无聊的部分,以便开发者可以专注于有趣的部分。
AI 代码生成真正有帮助的时刻
在每天使用 AI 代码工具两年后,这里是它们确实省时的地方:
- 模板代码。 设置新的 Express 服务器,创建 React 组件骨架,编写 CRUD 接口。你之前写过 100 次的东西。
- 语言翻译。 “将这个 Python 函数转换为 JavaScript。” AI 很好地处理语法差异。
- 正则表达式。 没有人是从零开始写正则表达式的。AI 在这方面确实比大多数人更优秀。
- 测试框架。 为现有函数生成测试用例。结构是可预测的;AI 处理得很好。
- 文档。 从代码生成 JSDoc 注释、README 模板、API 描述。
AI 代码生成器 处理这些用例。用简单的英语描述你需要的内容,选择你的语言,然后获取工作代码。
当它造成更多问题时
根据 谷歌的工程实践,代码质量比代码速度更重要。AI 生成的代码在可预测的方式上失败:
- 安全性。 AI 不会考虑 SQL 注入、XSS 或认证边缘情况,除非你特别要求。
- 边缘情况。 它生成的是顺利执行的路径。空输入、空值、并发访问、网络故障——这些需要人类思考。
- 架构。 AI 生成的是函数,而不是系统。它不理解你的代码库的模式、约定或约束。
- 依赖性。 它可能会建议一个不再维护、有漏洞或增加不必要负担的库。
AI 代码审查清单
每段 AI 生成的代码在合并之前应通过此清单:
- 它能处理 null/undefined/空输入吗?
- 是否有任何应该可配置的硬编码值?
- 它遵循你项目的命名约定吗?
- 错误消息对调试是否有帮助?
- 你会在凌晨 2 点调试这个代码吗?
使用 代码审查工具 来自动化此清单的部分内容。在测试方面,单元测试生成器 创建能捕获常见问题的测试用例。
正确的心理模型
把 AI 代码生成视为一个非常快速的初级开发者。它迅速编写代码,按字面意思遵循指令,并需要代码审查。你不会在未审核的情况下合并初级开发者的 PR。不要合并 AI 生成的代码。