只要给AI输入几句自然语言表达的要求,它就可以生成“无所不能”的程序?这是vibe coding,氛围编程,想要给人灌输的印象。现实确实如此吗?如果目标就是做个网页,随便生成个小游戏,当然可以,但是如果希望有一定功能的,哪怕是一个小项目,就不那么容易了。
即使现在Agent能力很强,有五个点依然是需要非常注意的。
一、一定要先做设计

在Cursor、Claude Code这类IDE中,用户从空白项目开始提出要求后,Agent都会进行思考的“设计”,然后给出todo list。其实,这不是设计,只是把用户的需求理解后翻译成任务列表而已。
真正的设计是需要用户通过单独跟更好的模型进行交流互动后,生成设计文档,甚至原型代码,在这个过程中人是要反复确认结构是否合理,用到的技术方案是否可行,特别是忌讳过于复杂的结构设计。如今模型都倾向于给出“完美”的设计,但是,简单 >> 完美。
二、一定要保存,Github

长期以来的职业习惯,让我会不由自主的不断使用两套快捷键,Vim下的“ESC+:+w”,桌面系统下的“Ctrl+S”。在没有自动保存的时代,随时手动保存,是必须的习惯。到了Vibe Coding时代,虽然一些IDE已经推出了“checkpoint恢复功能”,但是依然会碰到很多小问题。同时,每一次请求,都像是在“开盲盒”,你并不知道Agent的下一步展现出的是天使的一面还是魔鬼的一面。
所以,最好的方式就是当Agent按照设计,在来回的修改中,终于得到一个看起来功能基本正确的版本时,一定要新建一个Github(也可以是其它代码仓)项目,然后完成一次first commit。在这之后,每次成功的功能改动,都要养成push代码的习惯。每一次Agent把代码改的面目全非又“原地打转”出不来时,放弃掉所有上一次commit后的更改,再开一次“盲盒”。
三、一次改一个功能

不要太贪心,每次小心翼翼的改一个功能,除非,你已经做好了准备,下定决心来一把大的,看看会不会得到“幸运女神”的眷顾。
四、时刻关注Agent进程

一定要看着Agent干活,如今的IDE都会在某一类操作前询问“单次允许”,“在会话里一直允许”,还是“不允许”。我一般会选择几次“单次允许”,然后在一切顺利后,选择“一直允许”。但是Agent会犯一些常见的低级错误:搞错目录(这个经常发生),“原地打转”时不断删文件建文件,不断产生越来越无厘头的shell指令。所以,Vibe Coding不是让Agent自己跑,然后什么都不管,而是要时刻关注它在干什么,这不会浪费时间,因为生成速度和执行效率高出人很多,看Agent干活,也是很快乐的一件事情,最重要的是:发现情况不对,一定要立刻停止(虽然Claude Code加入了执行期间用户补充指令的功能,但是反应偏慢),调整方向继续,或者索性回档重来。
3和4是不是就是一个“S&L”大法?
五、一定要注意文档

Vibe Coding一个被人普遍诟病的问题是,代码太多,bug也多,人无法修改。所以,一个重要的方法就是在每一个所谓的小里程碑完成时,要让Agent修改或者新建文档,包括README,包括一系列的系统架构图,流程图,等。人先看图,然后再去看代码,指向性会好很多,当然,文档还有个好处时,可以清楚的看到那些和设计相悖的实现,以及明显的结构冗余,这时候,不要犹豫,立刻提出来,让Agent改正。