粪海蝶泳


作者:郑凯

今天帮同事诊断一个东西,就很简单的 http server 接收文件并保存到本地 nfs,几个月前就做出来,但没想到目前居然用了 64 个 4 核的 pod 在跑,每个月花费一万多,组头觉得肉疼让我帮忙看看。我就想起《活该如此》里引用的话:

一个编译器很有趣,那是因为您可以从中学会编译原理。为充满 BUG 的软件编写接口程序您却什么也学不到,因为那些 BUG 是随机的。

我觉得大多数软件问题都是这种:如果它没出毛病,那一切都很好。甚至可以说,所有软件工程上的学问,都为了 debug 或需求变更做准备的(这两件事其实是一样的,就是原有代码需要修改)。

这是个典型的“vibe 一时爽,维护火葬场”,就是我这个同事可是 ACM 金牌,让他来从头学习写个 http server + 保存功能,用不了多长时间,远少于他不停调试这坨代码到底哪里出错的时间(代码内容他也没怎么看过)。而且写完代码他会增长些经验,而帮 vibe 擦完屁股不会有什么收获。

有经验的程序员知道如何安排 vibe,比如重视测试和打点,来保证生成代码的成品质量不至于失控。但是新人用 vibe 是一种灾难,粪海蝶泳。不过,就算知道如何给 LLM 写需求文档,这种经验这几年也得快速迭代,又让我想起了《行进中开火》,疲于奔命于学习新的 API。

我已经见过好几个人说,古法编程的时代已经过去,关键是这几个人水平都不算差的。而我自己已经处于半退休状态,完全不用为了维持生计去写代码,最近一年对公司总共也没多少 commit,几乎都是 markdown。我是站着说话不腰疼,也不指望能跟谁能达成共识。而且程序员对未来的普遍情绪是迷茫,上个月我们在做一个 agent 的时候,组头说:

今天在写这个agent规划的时候,就感觉大家珍惜现在写代码的每一天,我觉得未来5年确实就全世界层面的程序员裁员,10年后我们就像“纺织女工”这个词一样出现在课本里了

但我今天又想起来,我写过那么多“无用”的代码,很多东西我知道有无数人写过做过,但我懒得研究别人做好的东西怎么用,我在实现一个功能或者小项目的过程中能得到极大满足,而这些微不足道的事情又在我工作生涯的上升期有太多帮助。我从来不指望其他人能理解。