ARTICLE · 1059595
AI能帮你写代码,带不能替你负责丨用AI写代码,我踩过这5个坑
摘要:用AI写代码踩坑怎么办?我用Copilot写代码半年,踩过这5个坑。把AI生成的代码直接上线、提示词写得太模糊、以为AI写的代码就不用看了、用AI写复杂业务逻辑、只复制不理解。正确做法是什么?
用AI写代码半年,我踩过不少坑
我用GitHub Copilot写代码有半年多了。
一开始觉得这东西太神了,写个函数注释它就能生成完整代码。
但用久了发现,AI写的代码不是万能的,坑很多。
今天分享5个我踩过的坑,都是血泪教训。
坑1:把AI生成的代码直接上线
最开始用的时候,我觉得AI写的代码看着挺对,就直接复制粘贴上线了。
直到有一次,AI帮我写了一个数据校验的函数。
看起来挺正常,正则表达式也对,逻辑也对。
上线之后,出了个bug。
有个用户的输入里带了个特殊字符,AI写的正则没考虑到,导致数据存错了。
我查了半天才发现,原来AI写的正则有个边界条件没处理。
从那以后,我再也不敢直接使用AI写的代码上线了。
正确做法:AI写的代码一定要自己看一遍,重点看边界条件和异常处理。
坑2:提示词写得太模糊
一开始我写提示词就很随便。
比如"帮我写个用户登录的接口"。
AI就给我生成了一个最普通的登录接口,用户名密码验证,返回token。
但我真正想要的是,支持手机号验证码登录,还要有第三方登录。
AI不知道啊,它只能按你说的写。
后来我学聪明了,提示词写得越来越细。
"帮我写个用户登录接口,支持手机号验证码登录,验证码6位,5分钟内有效,登录成功后返回JWT token,有效期7天"
这样AI生成的代码才是我真正想要的。
正确做法:提示词越具体越好,把你想要的功能、参数、限制都写清楚。
坑3:以为AI写的代码就不用看了
有一次我让AI帮我写个测试用例。
AI生成了一大段测试代码,看起来挺完整的,各种情况都覆盖了。
我直接就用了。
后来跑测试的时候发现,有个测试用例一直失败。
我仔细一看,AI写的测试用例里,有个断言写错了。
它把预期值写成了实际值,所以测试永远失败。
从那以后,我每次都要把AI写的代码从头到尾看一遍。
正确做法:AI写的代码一定要review,不能因为它写得快就不看了。
坑4:用AI写复杂业务逻辑
有一次项目里有个很复杂的业务逻辑,涉及到各种规则和判断。
我懒得自己想,就让AI帮我写。
AI给我生成了一大段代码,逻辑很复杂,各种if else嵌套。
我看了半天没看懂,但感觉AI写的应该没问题。
上线之后,出了好几个bug。
因为这个业务逻辑里有很多特殊情况和边界条件,AI根本不知道。
它只能根据你给的描述来写,但业务的复杂性是描述不清楚的。
从那以后,复杂的业务逻辑我都是自己先想清楚,然后让AI帮我写基础部分。
正确做法:复杂业务逻辑一定要自己先设计清楚,再让AI帮你写代码。AI能帮你写代码,但不能帮你想逻辑。
坑5:只复制不理解
有一次我遇到一个性能问题,让AI帮我优化。
AI给我生成了一段优化后的代码,用了某种缓存策略。
我看了一眼,感觉挺对的,就直接用了。
结果性能反而更差了。
因为我根本没理解AI写的缓存策略,它选的缓存 key 设计有问题,导致命中率很低。
从那以后,我每次用AI写的代码,都要先理解它为什么这么写。
如果我看不懂,我就问AI:"你这段代码为什么这么写?"
直到我完全理解了,才敢用。
正确做法:AI写的代码你一定要能看懂,看不懂就问,别稀里糊涂就用了。
AI是工具,不是替身
用AI写代码半年,我最大的感受就是:
AI是个很好的工具,但它不是替身。
它能帮你写代码,能帮你提高效率。
但它不能替你做设计,不能替你做判断,不能替你负责。
如果你把AI写的代码直接复制粘贴上线,出了问题还是你的锅。
如果你让AI帮你做复杂的业务逻辑设计,设计错了还是你的锅。
AI只是帮你干活的,真正做决定、真正负责的人,还是你。
今天就能做的一件事
现在打开你上次用AI写的代码,从头到尾看一遍。
看看有没有这5个坑里的问题。
留言区聊聊:你用AI写代码踩过什么坑?
我挑几个典型的,下期说说怎么避。