三个月前,我是vibe coding的忠实信徒。
打开Cursor,描述需求,AI写代码,我review一下,合并。一天能顶以前一周的产出。当时觉得,软件工程这玩意,可能真的要被重新定义了。
三个月后,我改主意了。
不是AI不好用。是我发现,写代码只是工程的一小部分。真正的工程,是那些AI不擅长的东西:边界条件、错误处理、版本兼容、团队协作、长期维护。
这些东西,vibe不出来。
蜜月期
第一个月是最爽的。
接到一个需求:做个数据导出功能。以前得写半天,现在5分钟搞定。AI不仅写代码,还帮你写测试、写文档、写migration脚本。
我当时发了条朋友圈:“vibe coding让程序员变成了产品经理。”
底下20多个赞,好几个同行说"太真实了"。
那种感觉就像开了外挂。以前觉得复杂的算法,现在AI秒出。以前要查半天的API文档,现在一句话搞定。效率提升了至少3倍,有时候5倍。
我开始相信那个说法:AI让程序员变成10倍工程师。
裂缝出现
第二个月,裂缝开始显现。
一个vibe出来的数据处理模块,上线两周后出了问题。某个边界条件没处理,数据量超过10万行的时候,内存爆了。
我回头看代码,AI写得很漂亮。逻辑清晰,命名规范,甚至还有注释。但它没考虑到内存限制。
因为我没有告诉它要考虑内存。
这就是vibe coding的问题:AI只解决你说出来的问题。那些你没说出来的——性能、安全、兼容性——它不管。
修那个bug花了2小时。如果一开始就自己写,可能也就3小时。省下的1小时,全花在排查和修复上了。
工程不是写代码
第三个月,我想明白了一件事。
软件工程的核心不是写代码。是决策。
这个字段用int还是string?这个接口要不要加缓存?这个数据结构能不能支撑未来半年的增长?这些决策,AI给不了建议,因为它不知道业务背景。
vibe coding把"写代码"这个环节加速了10倍。但"做决策"这个环节,一点没变快。
而决策的质量,决定了系统的长期健康。代码写得再快,决策错了,后面全是坑。
我开始把vibe coding的时间省下来,用在思考和设计上。以前一天写8小时代码,现在写2小时,剩下6小时想清楚要写什么。
产出反而更稳了。
Structured Engineering
我给现在的模式起了个名字:structured engineering。
不是不vibe,是有结构地vibe。
第一步:定义边界。 在让AI写代码之前,先想清楚输入是什么、输出是什么、边界条件有哪些。这些写在prompt里,AI就不会漏。
第二步:拆分任务。 一个大功能拆成5个小任务,每个任务vibe一次。比一口气vibe整个功能靠谱得多。
第三步:强制review。 AI写完的代码,必须过一遍。不是看语法,是看逻辑。特别是错误处理和边界条件。
第四步:写测试先行。 先写测试,再让AI实现。这样AI知道目标是什么,不会跑偏。
这四步加起来,比纯vibe慢一点。但比纯手写快很多。关键是,出来的东西能上线,不用半夜被叫起来修bug。
一个具体的例子
上周做个API接口。以前的vibe方式:
“帮我写一个用户查询API,支持分页。”
AI秒出代码,看起来没问题。上线后发现没有限流,被刷了10万次。
现在的structured方式:
“写一个用户查询API。要求:1.支持分页,每页最多100条;2.加限流,单用户每分钟最多60次;3.查询超时5秒返回空;4.返回格式JSON,包含total和items;5.写3个测试用例:正常查询、空结果、超限。”
AI还是秒出代码。但这次,边界条件都在prompt里了,不会漏。
多花了10分钟写prompt,省了2小时修bug。
10倍速的真相
现在我回头看"AI让程序员10倍速"这个说法。
写代码这个环节,确实10倍速了。但写代码只占工程师工作的20%。剩下80%是思考、沟通、review、调试。
所以整体算下来,AI让我快了2倍,不是10倍。
2倍已经很好了。真的。以前一天做1个需求,现在一天做2个。周末不用加班,工作日不用熬夜。
但10倍?那是把"工程"简化成了"打字"。
工程是决策,是权衡,是取舍。这些东西,AI暂时还帮不上忙。
给vibe coding同行的建议
如果你也在vibe coding,几点建议:
别迷信产出。 一天写1000行代码不叫厉害,一天写100行但不用修bug才叫厉害。
把省下的时间用在思考上。 AI帮你写代码省下的时间,别用来vibe更多代码。用来想清楚要写什么。
边界条件自己把关。 AI不会主动想边界条件。你得在prompt里写清楚,或者review的时候自己检查。
测试是安全网。 先写测试再vibe。没有测试的vibe代码,上线就是定时炸弹。
承认AI的局限。 AI擅长模式匹配,不擅长创造性决策。架构设计、技术选型、性能优化,这些还是得自己来。
vibe coding是个好工具。但工具终究是工具。工程师的价值,不在于打字速度,在于决策质量。
三个月前我以为AI会取代程序员。现在我知道,AI会取代那些只会打字的程序员。
会思考的工程师,反而更值钱了。
