随笔·阅读约 1 分钟·
Vibe Coder 和软件工程师的七条分界线

Vibe Coder 和软件工程师的七条分界线

Vibe Coder 和软件工程师的区别不是用什么工具,而是责任从哪开始、到哪结束。一篇文章帮你判断自己该用什么模式工作。

📄 本文编译自:Vibe Coder vs. Software Engineer — AI 写代码的速度越来越快,但「快」和「好」之间隔着几条分界线。

几年前,Yusuf Aytaş 写过一篇《Java 开发者 vs 软件工程师》。当时他还没意识到人们对 Java 的职业认同感有多深。他的本意是区分两类人:一类被特定语言定义,一类从更广的角度思考问题解决。

那场讨论从一个前提开始:Java 成了唯一的路。许多开发者从 Java 出发思考一切。工具变成了观察问题的透镜,当问题不匹配这个透镜时,就硬往里面塞。

现在这个模式又回来了。AI 不是另一种编程语言或框架,它改变了写软件的经济性。但旧的模式还在:一个工具变得强大,人们把自我认同包裹进去,然后手艺就缩水成了工具。

问题是,AI 确实能写代码,而且每天都在变得更好。但关键不在于它能写多少,而在于它写出来的东西进入真实代码库后会发生什么——那里有真实用户、真实数据、合规要求、线上事故、以及需要长期维护的真实团队。

这就是 Vibe Coder 和软件工程师的分界线所在。

第一条:衡量标准不同

Vibe Coder 用「从想法到第一个可用版本的时间」来衡量进度。软件工程师用「安全合并的时间」。

安全合并包含审查成本、测试成本、部署成本、回滚成本、协调成本和未来维护成本。Demo 是错的终点线——它只证明某样东西可以被展示,不代表它能被团队吸收。

一个团队里,总得有人审查代码、理解背后的意图、判断依赖是否合理、确认测试是否验证了行为、执行数据库迁移、协调跨团队变更、写完 runbook、响应告警。这些都不是玩具项目的一部分。

—— 广告 ——

第二条:工作单元不同

Vibe Coder 把生成结果当作进度。软件工程师把每一次变更当作一个责任单元。

生成的结果可以是大的、乱的、临时的。但真正的变更管理不能这么随意。变更必须足够狭窄以便审查,足够可解释以便信任,足够有界以便在不拖累整个系统的前提下合并。

这就是速度要么变得有用、要么变成审查债务的地方。

第三条:代码所有权

Vibe Coder 可以说「模型生成的」。软件工程师必须说「我负责的」。

这意味着作者必须先把模型输出的内容转化为工程决策,然后才能提交审查。代码可能始于模型,但问责不能停在那里。如果你不能解释每个有意义的文件为什么变化,那它就不算准备好。

第四条:任务边界

Vibe Coder 给模型一个目标。软件工程师给模型一个有边界的任务

有边界的任务才是工程发生的地方:用这个接口、不要碰这一层、遵循这个模式。好的提示词不是魔法,它通常只是工程师已经理解了边界的证据。

任务越大,模型越容易局部优化、全局破坏。这就是为什么「让 AI 搞定整个东西」既是个坏习惯,效果也不好。更好的模式是在请求生成代码之前先缩小决策空间。提示词越具象,结果越好。但具象的前提是你得知道自己想干什么——这正是有经验的工程师最能从 AI 获益的地方:不是给模型更多自由,而是给更少。

自由适合周末黑客。生产环境需要约束。

第五条:发现 vs 交付

同一个 PR,在原型探索阶段无害,在交付阶段就是灾难。Discovery 可以容忍混乱,因为目标是学习和快速迭代。Delivery 不能容忍无法解释的混乱,因为目标是一个真实的业务成果。

Vibe coding 适合犯错成本低的场景。工程纪律适合犯错成本属于客户、团队或公司的场景。

第六条:工程师的学徒期

初级工程师应该用 AI。用得好的话,AI 可以解释代码、对比方案、生成示范和加速学习。

但有一个坏版本:如果初级工程师用 AI 来避免理解系统,他们可能交付得更多、学得更少。这是糟糕的交换。头几年的工程生涯是人建立心智模型的关键时期——这个模型得长在自己脑子里,不是从机器那里借来的。

AI 可以让初级工程师在短期内看起来更高效,同时削弱把他们变成优秀工程师的学习循环。这就是为什么 Zig 的作者 Andrew Kelley 在项目中全面禁止 AI 贡献——AI 提交破坏了贡献者成长路线图,因为提交者没有真正学习代码库,也没有吸收反馈。

第七条:独行 vs 团队

Vibe Coding 诱使你独自工作。但人是在团队中学习和成长的。软件工程师通过与其他人协作来提升手艺。

这个工作的核心不是代码,而是判断力——关于什么有风险、什么没有的判断力。判断力是通过与系统和人的接触建立起来的。

两者的正确用法

同一个人的脑子里应该有两套模式:

  • 发现阶段当一个 Vibe Coder:快速把想法变成可点击的原型,降低从想到做的距离。在投入真正的工程资源之前,很多想法都值得这样对待。
  • 交付阶段当一个软件工程师:控制什么进入系统、如何审查、如何测试、如何运维、以及未来如何修改。

关键是要知道你现在在哪个模式下,以及不要让一个模式的习惯渗透到另一个模式里。Vibe coding 帮你学得更快,软件工程帮你避免永远为学到的东西买单。

分享到
微博Twitter

© 2026 四月 · CC BY-NC-SA 4.0

原文链接:https://aprilzz.com/ramble/vibe-coder-vs-software-engineer