AI 写出的代码怎么才能不跑题

最近用 AI 写了几个项目,有了一点点心得,所以来和大家分享一下,如何用 AI 写出高质量的代码,而不是写完再去返工。

想要不跑题,首先 AI 得行,因为毕竟是它来写。

我最常用的是这三个 Claude 4kimi k2gemini2.5-pro

Claude 是综合实力最强的,不管是解决特殊问题还是执行长任务,都完成的很出彩,但前提是它熟知了上下文,像是 Trae,对于上下文的处理明显不如 Cursor。这种情况下,编码前描述出目前的需求,再圈一两个典型页面让它去查看一下,会比直接让它写好很多。

kiro 里的 claude 是能用,但是每天会有好几次 retry,用起来不痛快。

cursor 的免费版则是不能用 claude 4

所以我现在主要是在付费使用 Trae 国际版

gemini2.5-pro 我会用于 Claude 无法解决的某个具体问题上,通常都有奇效。比如我用 Claude4 写了一个拼图、分图、长图 工具,写到最后的长图功能时,claude 怎么也无法解决 bug,换成 gemini2.5-pro 梳理了一遍很快就找到了问题所在。

但它最大的问题是长任务执行不下去,我没有往深了挖掘它的用法,只察觉到它在执行长任务时会经常陷入死循环,不停的处理一个问题,而且(对于长任务)思考特别慢。

kimi k2 现在的编码能力也可圈可点,在涉及小程序这种具有国内特色的问题上,它掌握的知识库明显要比 Claude 要多一些,很好使,在处理一些短的指令时速度也很快,准确度也可以。有时候我忘记切换模型,一直用的 k2,还以为是在用 claude

选好大模型,确认了它的能力没有大问题,最终发出指令的还是会回到人身上

虽然现在大模型都在展示用最少的自然语言去让大模型生成一个完整的项目,这没错,可以反应出大模型到底有多强大。但现实情况下很少用到这个场景,尤其是你去接私活,而不是作为一个独立开发者。

以我目前接触的项目来说,还是要以维护和迭代老项目为主。

哪怕开了新项目,公司里的研发主导者还是会给你一个对他们来说可控的已经初始化的项目。而不是让你去 AI 自由发挥,因为代码最终是给人看的,是要维护的,虽然界面看起来可能没错,但是出了新需求就要重构或者去迭代很不熟悉的代码也是公司不能接受的。

所以第一步,就是梳理项目整体的结构

这一步也是要AI做的,因为它整理的更快。整理的内容包含整体技术栈,主要工具类、插件、组件、hooks 在哪里存放和使用,代码风格,注释风格等。

这里其实也是可以输出设计风格的,但是 AI 很难百分百还原设计图,哪怕你把所有代码发给它。所以对于客户要求的 UI,还是要自己调整到完美状态。

AI 整理出来的 md 文档一般都带有示例,输出完毕再自己补充和纠错一下。

这一步决定了你后续的长任务准确度,限制它的过度自由发挥。

大部分 AI IDE 支持自动或手动携带这个 rule.md ,执行长任务时最好带上,尤其是你切了聊天窗口,有的编辑器就不会自动携带之前窗口的上下文了。

然后就开始下达具体需求的任务,这里其实有点考验开发者一个综合能力。

首先你需要知道这个需求具体是什么逻辑,因为 AI 提升的你的编码能力。但是如果一开始的需求就描述不清楚,任谁也做不好这个活。

这一步其实不算难,就把自己当成一个产品经理,把自己要做的东西以文字的形式描述出来就可以了

AI 是会帮你设计架构以支持你这些需求的,甚至很多时候它设计的架构都有点过了,是咱们平时拧螺丝时压根不会去想的方向。

你同事看到这写代码只会觉得这是你从哪个开源项目上 copy 过来的,肯定不会认为是你写的。

所以此时,平时勤勤恳恳写代码,学代码,学架构的同学,此刻你的价值将会被呈数倍放大

平时的经验会告诉你这个需求应该使用什么样的架构,什么思路,你在写提示词不过是在写自己的解题思路罢了

从怎么开始写,用什么写,用哪几个函数实现,最终实现什么,然后最后再加几个编码的注意点。然后回车,把具体功能的实现交给 AI 即可。

看着 AI 在不同文件之间实现功能,就像是看学生在做题一样,哪里错了就拒绝,这绝对不是一个非程序或者普通开发者所能具备的能力。

所以哪怕是 AI 发展的如何迅速的今天,你也不会浪费自己的努力。

但是你的老板觉得你浪费了他的钱的话,那就另说了。

毕竟 AI 对咱们开发者是考验,对老板也是考验。

有的老板愁单子不够多,AI 提效了是好事,能吃下更多单子。

有的老板只有这一亩三分地,你用 AI 节省了他一半的成本,那你就是他多余的成本。

此时,AI 写出跑题的代码都不是什么坏事了。

越乱越需要人治理。

所以,怎么写出不跑题的代码?

一个靠谱的 AI ,外加靠谱的开发,绝对不会跑题。

看到这里你可以发现,我说的这些有一个前提:针对公司项目

而你上网能看到的是什么?

纯 Vibe Coding ,xx 天完成一个 xxx

此时你看到的是对传统编码方式的无情碾压

但这其实不冲突

因为编码在这类开发者里是最不重要的一环

他们要的是最快的速度完成功能甚至不需要完成功能,就开始去大量的宣传和找到付费群体。

而公司项目开始开发时,已经是有人付钱了,所以要按付款方的标准来完成。

这已经是两种岗位、两种性格之间的差异了,毕竟销售不是谁都能做好的,机会也不是所有人都能洞察的。

所以,我想,我们可能已经在适合自己的位置上了。