最近组里推AI编程,我也跟着用了一阵子Cursor,确实能省不少样板代码的时间。但有个问题一直很纠结:它生成的那些函数,尤其是涉及到并发或者状态管理的时候,我总是不太敢直接信。有一次让它写个WebSocket重连逻辑,看起来挺像那么回事,结果一压测就暴露出资源泄漏。想问下各位,你们用这些工具产出的代码,是会仔细review完再合,还是说小改动基本就信任它了?有没有什么技巧能快速判断它写的代码靠不靠谱?还是说主要靠测试兜底?
楼主
19天前
Copilot和Cursor写出来的代码,大家真的会直接merge吗?
请 登录 后发表回复
全部回复
共 64 条
2楼
2天前
不敢直接merge,尤其并发和状态相关的代码,基本当参考模板用,测试才是最后的防线。
小改动会直接合,复杂的必拆开重写,压测和review比AI生成那几分钟值钱多了。
3楼
2天前
小改动我直接merge,涉及并发和状态的必须重写,光靠review不够,压测才是试金石。
4楼
1天前
这个真得看场景,我自己的底线是:涉及并发、状态机、资源生命周期(像你说的WebSocket重连)这种代码,不管生成得多漂亮,一律当“有bug的候选”来对待,必须自己把状态转移捋一遍,最好再补上失败注入的测试。反而是CRUD、DTO转换、模板代码这些,我基本扫一眼就过了,毕竟就算有坑也容易在联调时暴露。你提到压测才发现泄漏,其实我觉得这不算AI的锅,即使人写的重连逻辑,不做长时间运行验证也容易埋雷,所以核心还是得靠测试兜底,而不是期望工具生成完美代码。至于快速判断的技巧,我一般看它有没有处理边界条件,比如空指针、超时、重试退避,还有全局变量和闭包捕获是不是干净,如果这几处都含糊,那基本就是“看起来能跑”的伪代码。还有个实用方法,让它把逻辑拆成纯函数和副作用两部分,纯函数部分可以放心一点,副作用那就得自己盯着。另外小改动我也不会全信,但会降低review的强度——比如只查类型和异常路径,而不是逐行读。反正现在我的态度是:AI写的代码当“初稿”用,省掉从零开始的时间,但“直接merge”这个选项,在我这儿基本不存在。
5楼
1天前
我基本是“小改动直接信任,复杂逻辑必拆开看”的路子。像你那个WebSocket重连,我遇到类似情况会先让它把状态机画出来,或者逼它把错误处理分支列全,有时候它给的方案看着完整,但边界条件就是差一口气。测试兜底确实重要,但压测能发现的资源泄漏,单元测试未必能cover住,所以关键还是得自己心里有数。