Vibe Engineering 时代的代码乐趣

发布: (2025年12月13日 GMT+8 09:44)
11 min read
原文: Dev.to

Source: Dev.to

引言

编程一直吸引着我,因为我可以让机器屈服于我的意志。
把一个凌乱的问题拆解成更小的块的拼图式快感,盯着系统直到 bug 的形状最终显现出来,以及在成千上万的文件中挖掘出那唯一不对劲的地方——当它成功时,会带来一种真实的成就感,正如解开填字游戏或拼图一样。

这种乐趣很大程度上也来源于我学习编程的方式。我完全是自学的;大学里我从未上过一门我没有挂掉的编程课。这并不意味着我比别人更好,但它塑造了我的思维方式。走出传统路径的学习迫使我阅读大量他人的代码,逆向推断决策,并培养出一种顽固的自立精神。这段背景赋予了我一些可能本来没有的优势和视角。

开源软件是这段旅程的核心。它是我的学习途径,回馈社区一直对我很重要——不是为了美德展示或简历堆砌,而是出于互惠。多年来我从 OSS 中受益匪浅,而回馈的意义始终超过任何荣誉。在我所有的职业成就中,我最自豪的就是这点。

很长一段时间,我半开玩笑地称自己是赤手空拳的程序员。我会因为倔强而硬着头皮去完成任务。如果是我写的,我会写每一行代码。我的项目里从没有超出我自身能力的代码,即使有些代码花的时间远超应有的,因为我需要拉伸并扩展自己的能力。

这种与代码的关系正在改变。

从 vibe coding 到 vibe engineering

我不喜欢 vibe coding 这个词,因为它暗示你只要告诉 AI 你想要什么,它就会直接吐出结果。我的实际体验并非如此。

我现在的感受更像是 vibe engineering

这是真正的工作:规划、设定约束、审美。它是懂得如何提出正确的问题,如何进行反驳,如何识别出哪里闻起来不对。大量精力投入在协作式制定计划,然后审视输出:

  • 你为什么这样做?
  • 这段代码到底是什么意思?
  • 这里隐藏了哪些假设?

工作并没有消失——它升到了更高的层次。

PAGI 与那种空洞的余味

PAGI 并不是我随手一键就催生的。我花了一年多的时间思考它:个人研究、与 AI 的研究、反复阅读现有代码库、盯着设计图、放弃那些感觉不对的方案,最终慢慢收敛到我认为值得构建的东西。等我真正开始写严肃代码时,我已经在这个问题上投入了大量的自我。

当我把它实现出来时,我几乎对整个项目都进行了 vibe‑engineering,甚至包括一些真正复杂的异步代码和 Web 服务器部分——这些仍然不是我的专长。

从某个层面看,这令人陶醉。我产出了一个我思考已久、而且在我历史上一直回避的领域的东西。系统可以运行。它是真实的,我认为它会成为 Perl OSS 生态系统的有价值补充。

然而成就感却有点空洞。并不是因为它不诚实或不应得,而是因为我与代码的关系已经不同。PAGI 中有些代码在我写它们的时候根本不可能从零开始写出来。我现在能够深刻理解它们——事实上,vibe‑engineering 过程的一部分就是审查所有内容并提出细致、甚至有点烦人的问题。尽管如此,这种感觉仍然不同于自己手敲每一行代码的体验。

过去,我的项目里从没有“我做不到”的代码。PAGI 打破了这条界限。

作者身份、荣誉与开源的不适

这种跨越引发了在开源社区里尤为尴尬的问题。

  • 这真的算是我的工作吗?
  • 我该如何回应对这项工作的赞扬?
  • AI 是工具、合作者,还是更接近代笔?

让人纠结的是,我其实并不在乎荣誉。我的关注点是把有用的东西回馈给我受益巨大的社区。即便伦理上没有冲突,内心仍会有一种难以忽视的不适。当有人赞美我的聪明或设计时,这种赞美会显得格外奇怪,因为实现的大部分是通过对话生成的,而不是手工锻造的。

我没有明确的答案,也不确定自己是否想假装有答案。

精通、必要性与选择性深度

让这一切更复杂的是,我意识到自己已经不再必须精通所有事物。

我没有职业需求必须成为构建安全、高性能 Web 服务器的专家。这从来不是核心工作要求,也不太可能成为。换句话说,这并不本质上不同于我在使用 SQL 时对数据库内部细节了解甚少的情况。编写 PAGI 的很大动机是把异步 Web 编程的诸多复杂性隐藏在更高层的抽象后面,让不太了解底层异步原语的程序员也能使用它,而无需花大量时间去掌握低层细节。

然而,我仍有一部分在想,如果我按照传统方式——逐行、逐错——去精通这些主题,是否会更快乐。

这种张力是真实的。它涉及工艺、身份以及时机。我的职业生涯已进入最后阶段;未来十年甚至更短时间内,我可能会放手这项工作。相对而言,我自 90 年代末以来从未对编程如此兴奋——而这种兴奋正与对变化的淡淡哀伤并存。

当 vibe engineering 像是怜悯

让我意识到这并非单纯的“AI 好 / AI 坏”故事的,是一次截然不同的经历。

在工作中,我需要把几千行充斥技术债务的 Perl 代码翻译成我们更新的基于 Go 的系统。这是一项令人不快的工作——我最不喜欢的那类工作。里面充斥着死角、历史包袱和脆弱的逻辑。

对这项任务进行 vibe engineering 完全没有产生任何存在主义焦虑。它带来了宽慰。

出错的代价更低。情感负担更轻。我并不觉得因为没有手工雕琢每一行而失去了什么有意义的东西。这种对比让我明白:不适感并不是关于 AI,而是关于我从何处获得意义。

思考的声音不再导致瘫痪

这里还有一点我最初没有完全领悟的收获。

和许多程序员一样,我会在决策上陷入瘫痪,尤其是架构层面——我想这是一种轻度强迫症。我会在权衡取舍上反复打转,担心选错方向。过去,出错的代价感觉很高——不仅是技术层面,还是个人层面,因为这意味着要投入大量自己的精力。

与 AI 对话帮助打破了这个循环。

即使对象不是人类,和它“聊”也能让我把问题外化。我可以探索选项、压力测试想法,并以更少的焦虑前进。因为错误转向的个人代价降低,我不再频繁冻结。我可以在知道可以后续修正的前提下做决定,而不必承担同等的心理负担。

这是一种不同的快乐——比自豪更安静,却同样真实。

快乐如今栖息何处

我已经不再清楚“伟大的程序员”到底是什么样子。我仍然最为自豪的是我的开源工作。现在最无可置疑地属于我的,已经不再是每一行代码,而是我选择解决的问题、我对方案的倾向,以及我坚持的“最小且不愚蠢的修复”,以及追求简洁、易懂的代码和接口。

Back to Blog

相关文章

阅读更多 »

前所未有的建筑

封面图片:前所未有的构建 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-upl...

发布 0.4 结果

我做了什么 目标是添加一个设置,以关闭默认的树形视图: !Tree view https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-do...