
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 帮你学得更快,软件工程帮你避免永远为学到的东西买单。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/ramble/vibe-coder-vs-software-engineer
相关文章
Vibe Coding 和严谨工程之间的界限正在模糊,这让我有点不安
Simon Willison 深入反思了他对 AI 编码代理的态度转变:当代理越来越可靠时,你不再审查每一行代码——这究竟是效率提升还是风险积累?
代码行数找了个更好的公关:AI 效率指标背后的真相
从 Google 的 '75% 新代码由 AI 生成' 到 Anthropic 的 '80% 代码由 Claude 编写',AI 公司正在用代码行数替代真正的效率指标。这篇深度分析揭示了为什么这些数字经不起推敲。
程序员拒绝不用 AI 工作:Tokenmaxxing 的泡沫与隐忧
2026 年 AI 编程工具的依赖已经发展到开发者宁愿不做任务也不愿关掉 AI 的地步。但研究数据显示:AI 并没有带来期望的效率提升,反而催生了 Tokenmaxxing 怪象。