我是一个独立开发者,用AI写代码已经半年了。效率提高了不少,但也踩了让我后怕的坑。
坑1:AI写了一段代码,把我数据库清空了
那次我要写一个「删除过期用户」的功能。我用Cursor生成了代码,大致扫了一眼觉得没问题,就在测试环境跑了一下。
结果:整个用户表被清空了。
排查后发现,AI在SQL语句里写的是:
DELETE FROM users WHERE last_login < '2025-01-01'
但问题在于,它没有加LIMIT,没有检查COUNT,也没有让我先确认要删除多少条。而且它写的SQL在测试环境跑的时候,不知道为什么把WHERE条件给忽略掉了。
教训: 涉及数据删除/修改的操作,AI生成的代码必须逐字审查DELETE/UPDATE语句。先跑COUNT确认影响行数,再加LIMIT限制。
坑2:AI生成的代码看起来完美,但有安全漏洞
AI帮我写了一个用户登录功能。看着很完美——有密码加密、有token验证、有错误处理。
但我用安全扫描工具扫了一下——发现一个SQL注入漏洞。
AI生成代码很流畅,但它不会主动考虑安全问题。它能写出功能正确的代码,但不一定能写出安全的代码。
教训: AI写的代码必须做安全审查,特别是涉及用户输入、数据库操作、权限验证的部分。不要相信AI写的安全代码。
坑3:AI会编造不存在的库和函数
有一次我问AI怎么实现一个功能,它告诉我用"super-utils"这个库。
我去npm搜了一下——根本没有这个库。
AI编造了一个不存在的库,还给我写了完整的"代码示例"——如果我直接复制粘贴运行,代码当然会报错。
教训: AI推荐的第三方库一定要去官方源(npm/pypi/maven)确认存在。特别是那些"听起来很合理但其实不存在"的库名。
坑4:AI生成代码越多,项目越难维护
刚开始用AI写代码的时候特别爽,一天能写一千行。
一个月后项目变得难以维护。因为AI生成的代码风格不统一——有的函数用Promise,有的用async/await,有的用callback——同一个项目里三种风格混在一起。
教训: 用AI写代码前,先设定好代码规范。告诉AI用某种特定的风格,或者在项目里放一个ESLint配置。不然AI会按照它"觉得"对的方式写,而不是按照你的规范写。
坑5:AI不懂业务逻辑,只管写代码
我让AI写一个"根据用户等级显示不同折扣"的功能。
AI写出来了,功能完全正确:VIP1打9折,VIP2打8折,VIP3打7折……
但问题在于:我们的业务规则是VIP3打85折,不是7折。 AI按照它"觉得合理"的规则写了,没有按照实际的业务规则写。
教训: AI不懂你的业务。你以为你在"写代码",其实AI在"猜代码"——它猜对了90%,猜错了10%也足够搞砸一切。
总结:现在我用AI写代码的原则
用了半年AI写代码,我的原则是:
- AI写框架,我写逻辑 — AI负责脚手架的代码,核心业务逻辑我自己写
- 绝不对AI生成的代码直接上线 — 必须Code Review
- 删库/删表操作禁止AI参与 — 涉及数据安全的,一律手写
- AI写的测试都要亲自过一遍 — AI会写出"为了通过而通过"的测试
AI编程最大的谎言是"让AI帮你写代码"。真实情况是"让AI帮你写初稿,然后你花更多的时间检查它写的对不对。"
💬 评论
0