@KengGuangLong: Vibe Coding 时代,为什么软件工程反而更重要了? AI 让代码跑起来的成本趋近于零了。写一个功能、出一个原型,速度快到离谱。但瓶颈也跟着变了:现在最难的地方,是这个东西以后还能不能改。 Vibe coding 最大的问题,就是让…

X AI KOLs Timeline 新闻

摘要

在 Vibe Coding 时代,AI 让代码生成变得容易,但软件工程的原则如代码可维护性和设计模式变得更加重要,以解决审查、调试和重构的挑战。

Vibe Coding 时代,为什么软件工程反而更重要了? AI 让代码跑起来的成本趋近于零了。写一个功能、出一个原型,速度快到离谱。但瓶颈也跟着变了:现在最难的地方,是这个东西以后还能不能改。 Vibe coding 最大的问题,就是让人产生一种错觉,觉得能跑就是完成了。实际上,真正的完成还包括你能改它,你能跟别人解释它。很多人用 AI 快速出了原型,到了 review 阶段才发现,代码里的类名自己都不认识,文件之间的关系完全理不清。AI 帮你省下的时间并没有消失,它连本带利地转移到了 review、debug 和重构里面。 所以现在大厂的程序员们开始重新把软件工程捡起来了。这件事很值得注意。 再说另一个点。AI Agent 写代码有个典型毛病:它喜欢按层来,先把数据库层全写完,再写应用层,最后写前端。每一层单独看都还行,拼到一起就出问题。因为数据库的设计会影响前端怎么展示,你得让这些层早点碰上才知道合不合理。Agent 偏偏总是最后才组装。 怎么解决?经典软件工程里有个概念叫 tracer bullet(追踪子弹),意思是做一个功能的时候不要按层横着切,要纵向切一刀,从数据库到后端到前端,先把一条最窄的路径跑通,确认可行再往两边扩展。你把这个词写进给 Agent 的提示词里,Agent 就会在推理过程中主动使用它。 这背后有个很实用的原理:经典编程书籍几乎肯定在模型的训练数据里。你在 prompt 里用上这些专业术语,就相当于激活了模型脑子里对应的那片知识。这些术语就像一把钥匙,能打开模型已经学过但平时不会主动调用的能力。Grill Me Skill 的作者 Matt Pocock 管这个叫 leading word,引导词。 类似的概念还有很多。比如 deep modules(深模块),讲的是模块要接口简单、功能强大,别搞一堆浅薄的小模块互相调来调去。比如 ubiquitous language(通用语言),讲的是团队里所有人对同一个概念要用同一个词,代码里也要用这个词,别搞一堆同义词让人猜。 这些都是二三十年前的老概念。到了 AI 时代,它们反而更好用了。因为你在跟模型协作的时候,越精确的术语,越能引导出越精确的输出。 推荐三本书,都不厚,挑核心章节看就够用了: 《程序员修炼之道》,tracer bullet 就出自这本,里面还有很多关于怎么写可维护代码的实战思路。 《软件设计哲学》,讲的是怎么在模块层面做好设计,deep modules 的概念就在里面。 《领域驱动设计》,讲的是怎么用统一的语言把业务和代码对齐,ubiquitous language 的出处。 Vibe coding 让写代码变得很快,但快不等于完成。能改、能维护、能跟别人解释清楚,这些老功夫,现在反而成了最值钱的东西。
查看原文
查看缓存全文

缓存时间: 2026/09/19 08:57

Vibe Coding 时代,为什么软件工程反而更重要了?

AI 让代码跑起来的成本趋近于零了。写一个功能、出一个原型,速度快到离谱。但瓶颈也跟着变了:现在最难的地方,是这个东西以后还能不能改。

Vibe coding 最大的问题,就是让人产生一种错觉,觉得能跑就是完成了。实际上,真正的完成还包括你能改它,你能跟别人解释它。很多人用 AI 快速出了原型,到了 review 阶段才发现,代码里的类名自己都不认识,文件之间的关系完全理不清。AI 帮你省下的时间并没有消失,它连本带利地转移到了 review、debug 和重构里面。

所以现在大厂的程序员们开始重新把软件工程捡起来了。这件事很值得注意。

再说另一个点。AI Agent 写代码有个典型毛病:它喜欢按层来,先把数据库层全写完,再写应用层,最后写前端。每一层单独看都还行,拼到一起就出问题。因为数据库的设计会影响前端怎么展示,你得让这些层早点碰上才知道合不合理。Agent 偏偏总是最后才组装。

怎么解决?经典软件工程里有个概念叫 tracer bullet(追踪子弹),意思是做一个功能的时候不要按层横着切,要纵向切一刀,从数据库到后端到前端,先把一条最窄的路径跑通,确认可行再往两边扩展。你把这个词写进给 Agent 的提示词里,Agent 就会在推理过程中主动使用它。

这背后有个很实用的原理:经典编程书籍几乎肯定在模型的训练数据里。你在 prompt 里用上这些专业术语,就相当于激活了模型脑子里对应的那片知识。这些术语就像一把钥匙,能打开模型已经学过但平时不会主动调用的能力。Grill Me Skill 的作者 Matt Pocock 管这个叫 leading word,引导词。

类似的概念还有很多。比如 deep modules(深模块),讲的是模块要接口简单、功能强大,别搞一堆浅薄的小模块互相调来调去。比如 ubiquitous language(通用语言),讲的是团队里所有人对同一个概念要用同一个词,代码里也要用这个词,别搞一堆同义词让人猜。

这些都是二三十年前的老概念。到了 AI 时代,它们反而更好用了。因为你在跟模型协作的时候,越精确的术语,越能引导出越精确的输出。

推荐三本书,都不厚,挑核心章节看就够用了:

《程序员修炼之道》,tracer bullet 就出自这本,里面还有很多关于怎么写可维护代码的实战思路。

《软件设计哲学》,讲的是怎么在模块层面做好设计,deep modules 的概念就在里面。

《领域驱动设计》,讲的是怎么用统一的语言把业务和代码对齐,ubiquitous language 的出处。

Vibe coding 让写代码变得很快,但快不等于完成。能改、能维护、能跟别人解释清楚,这些老功夫,现在反而成了最值钱的东西。

相似文章

如何阻止 Vibe Coding?

Hacker News Top

本文讨论了使用 AI 代理进行 'vibe coding' 的兴起,其对代码质量和开发者理解的风险,并呼吁重新思考软件工程实践,以超越仅仅从意图生成代码。

@ai_super_niko: https://x.com/ai_super_niko/status/2070299861757616606

X AI KOLs Timeline

本文讨论了在AI能写代码的时代,计算机从业者是否还需要学习技术。作者认为,语法和API等表层技术正在贬值,但算法、设计架构和判断力等深层能力变得更加重要,学习重心应从初级技能转向高级工程师所需的知识。