我是一个挺久没写代码的人,最近因为 AI coder 的出现,又重新燃起了好奇心。于是开始用 Trae + GLM5 这个组合折腾开发。

不得不说,AI 编程助手确实爽——需求一句话,代码自动生成,感觉效率飞起,仿佛自己又回到了当年熬夜撸代码的黄金时代。

但很快我就发现了一个尴尬的问题:改 bug 改来改去改不好,明明说"功能开发完了",跑起来却啥也没发生。

如果你也遇到过类似的情况,别慌,你不是一个人。作为一个"代码手感生疏"的老兵,今天就把我踩过的坑和总结出来的"避坑指南"分享给你。

01 为什么 AI 写的代码,bug 这么难改?

先说说第一个常见场景。

发现一个 bug,我直接告诉 AI:"这里有问题,帮我修一下"。AI 很配合,立刻给出了一段代码,我复制粘贴,运行——

还是不对。

我又描述了一遍,AI 又改了改,我再试——

依然不对。

就这样反复了四五轮,bug 依然坚挺。我一度怀疑是不是 AI 在敷衍我。后来冷静下来一想,问题不在于 AI 不努力,而在于我给的"信息量"不够。

问题出在哪?

因为我多年没写代码了,对很多底层细节其实已经生疏。所以当我描述问题时,往往只说"它坏了",却说不清是哪里坏了、怎么坏的。AI 就像一个经验丰富但不了解项目背景的外援,你只说"这里有问题",它不知道:

  • 报错信息是什么?

  • 期望行为 vs 实际行为是什么?

  • 相关上下文代码有哪些?

怎么解决?

我把方法总结为"三轮提问法":

第一轮:给现象——"运行 xxx 操作时,控制台报错 xxx,期望是 xxx,实际是 xxx。"

第二轮:给上下文——把相关代码文件、关键函数、报错堆栈一并贴出来。如果你像我一样看不太懂堆栈,没关系,直接全选复制给 AI,它看得懂。

第三轮:给限制——"不要改动 xxx 模块""保持 xxx 的兼容性"。

这样三轮下来,AI 改 bug 的成功率至少翻倍。它不再是"盲修",而是"有据可依"地解决问题。

02 功能说开发完了,效果呢?

另一个更让人抓狂的场景是:我让 AI 开发一个新功能,它回复"已完成,请测试"。我满怀期待地运行——

页面还是老样子,新按钮没出现,新接口没调通,新功能仿佛只存在于 AI 的想象中。

为什么会这样?

我仔细复盘后发现,问题的根源是"信息不对称":

  1. AI 以为它写的代码是完整的,但可能缺少关键步骤——比如组件没有注册、路由没有配置、变量没有被调用。

  2. AI 生成代码后,默认"任务结束",不会主动提醒你还缺什么。

  3. 作为一个多年没碰代码的人,我很容易想当然地认为"代码写完就等于功能好了",忽略了中间还有"集成"这一步。

怎么解决?

我养成了一个习惯:让 AI 给我"验收清单"。

每次开发完一个功能,我会追问:

  • "这个功能还需要手动配置什么?"

  • "如何验证功能是否生效?"

  • "有没有依赖其他模块的地方?"

有时候 AI 会直接给出测试步骤,有时候会提醒我漏掉了路由配置或组件引入。把这些"隐性步骤"补齐,功能才能真正跑起来。

03 还有两招,从源头避坑

前面说的都是遇到问题之后怎么补救。后来我学聪明了,开始在开发流程上做文章。这两招帮我避开了 80% 的低级错误。

第一招:用 Spec 模式做好规划,不要乱改一通

最开始我让 AI 写代码的方式很粗暴:想到什么就说什么,AI 改完我看不懂,看不懂我就继续提需求,AI 继续改……最后代码变成了一个"缝合怪",谁都看不懂。

后来我学会了 Spec 模式。在让 AI 动手之前,先让它出一份技术方案:

  • 这个功能需要改哪些文件?

  • 数据流向是什么样的?

  • 有没有边界情况要考虑?

方案确认了,再让它动手写代码。

这样做的好处是:我和 AI 在动手之前就达成了共识。不会出现"我以为它理解了,其实它理解偏了"的情况。而且有了方案,后续改 bug 也有据可循,不至于"头痛医头、脚痛医脚"。

第二招:让 AI 写好测试代码,自己跑一遍验证

以前我写完功能,都是手动点一点,觉得"看起来没问题"就过了。结果往往是:改了一个地方,坏了另一个地方,我还没发现。

现在我养成了习惯:让 AI 同步生成测试代码。

不管是单元测试还是简单的验证脚本,我都会让 AI 写好,然后自己跑一遍。如果测试通过,我才敢说"功能好了"。

这招尤其适合我这种"多年没写代码、对细节没信心"的人。测试代码就是我的安全网——AI 写代码可能马虎,但测试代码跑起来不会骗人。

而且让 AI 写测试比自己写快得多,成本极低,为什么不呢?

04 我的"AI 开发三原则"

经过这段时间的折腾,我给自己定了三条原则,分享给你:

原则一:分步验证,不要一步到位

以前我习惯让 AI 一次性生成大段代码,结果出了问题,排查范围太大。

现在我会拆解任务:先搭架子,再填逻辑,最后加样式。每一步都验证通过后再继续。毕竟我现在对代码的掌控力不如当年,步子迈小一点,反而走得更快。

原则二:让 AI 解释,而不仅仅是写代码

遇到复杂逻辑,我会让 AI 先解释设计思路,我确认后再让它写代码。

这能提前发现理解偏差,避免走弯路。而且听 AI 解释的过程,本身也是在帮我重新学习现代开发的套路。

原则三:建立自己的"问题库"

每次遇到难搞的问题,我会把"现象 + 原因 + 解决方案"记录下来。

下次遇到类似问题,可以直接拿给 AI 参考,效率高很多。这个习惯,其实跟我早年写代码时记笔记的习惯一脉相承。

05 最后说几句

AI 开发工具确实强大,但它不是万能的。它更像一个"超能实习生"——干活快、知识广,但需要你给出清晰的指令、做好验收、及时纠偏。

对于像我这样很久没写代码、靠 AI 重拾兴趣的人来说,它既是一个巨大的助力,也是一个需要学会驾驭的工具。

用 Spec 做好规划,用测试守住底线,用分步验证确保每一步都踏实。 这三招用好了,AI 就是你的神队友。

如果你也在用 Trae、GLM5 或者其他 AI 辅助开发工具,欢迎留言交流你的经验和困惑。一起成长,一起少踩坑。


如果你觉得这篇文章有帮助,欢迎点关注、点赞、在看、转发,让更多朋友看到~

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐