AI替我写代码后,我的软件手艺去哪了
哦,我的手艺!
我现在很少打开代码编辑器,即便打开,也只是读一读。我已经好几个月没亲手写过一行代码了。以前我几乎就住在编辑器里,把打磨每一处代码细节当成工作中不可或缺的部分。奇怪的是,我对失去这一部分没有一秒钟觉得可惜。已经很久没有像现在这样对做软件感到有劲了。这到底是怎么回事?
我对AI的看法,跟模型迭代一样变得很快:
2023年:ChatGPT 用于学习和写代码片段让人惊艳。
2025年:4月我开始在工作中认真用 Claude,到年底,我已经被这种范式转变震撼到了。智能体很惊人,但还需要密切监督和引导。
2026年:模型持续变强,在很多场景下,它们就是比我更好的程序员。我的注意力转向了怎么从这个难以想象的技术里得到最大价值——我们仍得密切引导它。嗯,那是上半年的事;我现在已经不再认为监督需要那么紧了。而且 2026 年还没结束呢!
我用第一代智能体的经验是,生成的代码大多能跑,所以难的是把它打磨成型。这已经是巨大的效率提升,尤其智能体还能帮你一起做打磨。
关键在于,随着模型改进,在小事上干预的需求在快速消退。智能体越来越善于尊重你的编码风格和惯用写法,这很关键。当模型已经能自己处理这些细节,再花大量时间上去,就开始让人觉得是对人类注意力的浪费。
就说这一周的事:我让 Claude Opus 给 HEY 做垃圾邮件缓解措施。它引入了一个“cluster”领域实体,把我们需要的那些新检查很好地封装进了现有的“reputation”实体里。
这完全就是我们会自己写出来的代码。我没有提示它该怎么做,HEY 也没有给智能体准备风格指南。大语言模型只是自己分析了现有惯例,然后沿用了它们。就在几周前,这类设计决策还是我来做。
我不是在说现在可以盲目合并代码,我只是在指出趋势。老派软件手艺的时代正在改变,而且改变得很快,至少在职业软件开发领域是这样。我敢肯定,后面会有一股反过来颂扬亲手打磨软件里每一个字符的运动。
那么软件工程师还剩下什么?我相信……还有很多!听我说。我看到了三个技术能力的方向:
代码设计与实现——这两者没法真正分开。
高层设计:架构、领域模型与词汇、子系统、依赖、接口、技术栈等等。
把这门新的 AI 魔法用起来——我确信咨询顾问们会管它叫“智能体工程”之类的东西。听我说:就是魔法。
我看到第(1)类的大部分正在我眼前消失,就算代码评审还会存在一段时间,而那需要前AI时代程序员的所有本事。我相信第(2)类在可预见的未来仍需要不少人类引导,也是经验很值钱的地方。第(3)类则是我们这门行业要探索的狂野西部。我用AI越多,重心就越从(1)转到(3)。
我最近在 Basecamp 做一次大重构时,有了这种领悟。我想统一应用里不同的分页和拖拽系统。Basecamp 的代码库有 12 年历史,产品覆盖面很大,还有不少遗留 JavaScript,所以这是一项大工程。
我已经用了很多智能体,所以敢定这么大的目标。我让智能体 Marie(Claude Opus)把全部工作拆成 Basecamp 两张表格里的独立卡片。我让 Marie 有不清楚的地方就问我;它问了,我回答了一堆问题。然后我让它把卡片全做了。我再让 Fable 做了一轮评审来收紧代码,又让 Codex 做了一轮对抗性评审进一步打磨。
我心里一直预期要做大量代码评审。我想把那个时刻推迟到代码处于AI能给的最好状态为止。评审代码之前,我想先确认它跑得起来,所以让 Marie 准备一个系统:预置好数据,并附上清晰的说明,让我逐个测试不同的界面。
我这样手动过了一遍几十个界面,发现一批小的视觉 bug,智能体全都修了。这就是我这次干的主要活了。
真到代码评审的时候,出乎意料,我只需要给极少几条意见,一些小的审美问题。我真的完全没想到。
AI 之前,这会是一个做好几个月的活儿。我一周就做完了(说句实话,QA 还没做)。不过这给了我两个教训:
第一,我不该再假设自己比当前的前沿模型懂得更多,哪怕是在我了如指掌的代码库里。
第二,如果我让智能体自动把交互过程录成 GIF 再对比,明确表示我不想要任何视觉回归,它本可以自动发现我抓到的那一大批 bug。下次我得把用AI的方式再升一级!
我老是在想,我们只是刚刚碰到皮毛。就拿这个例子讲,为什么不在检测到垃圾邮件潮时自动准备临时缓解方案?为什么不让一个智能体盯着遗留的重复系统,去统一它们、改进它们?
AI 出现之前,我们能想到的构建空间实际上总是无限的,但真正构建的能力不是。现在,构建抽象的做法,只受我们思考和表达想法的能力限制。范式转变来得太突然,我觉得我们的行业要花上未来几十年才会开始驯服它。
这就是我接下来要投入注意力的地方。