跳转到主内容

10天写了30万行代码,然后我全删了(播客版)

一个不会写代码的人用 Claude Code 十天堆出 30 万行代码,发现走不通推倒重来。48 小时不到 1 万行代码端到端跑通。代码是负债,不是资产。

时长: 00:07:09

这一期从《10天写了30万行代码,然后我全删了》展开,聊一段亲身经历——vibe coding 不是省事,而是把杠杆放大;杠杆既能放大效率,也能放大混乱。

原文:/zh/blog/code-is-liability

本期要点

  • 旅游中用手机 SSH 远程驱动 AI,十天堆出 30 万行代码,主链路根本不通。
  • 改起来比写起来更贵——20 万行的项目像在屎山上动土。
  • 推倒重来,先回到 MRD/PRD/架构设计,把哲学和原则写在代码之前。
  • 同时指挥多个 Claude Code 比手写代码累得多,从写代码人变成同时三开的产品经理。

文字稿

鑫鑫: 今天聊一件挺夸张的事。嘉伟用 Claude Code 十天堆了 30 万行代码——然后几乎全部删掉。后面用 48 小时不到 1 万行代码重做了一遍,居然跑通了。来听他讲。

嘉伟: 48 小时,不到 1 万行代码,端到端跑通了。我拿起那个小盒子,部署了一个刚发布两天的模型,看着推理结果跑出来。那一刻的感觉挺奇怪的——不是兴奋,也不是成就感,更像是一种「哦,原来真的可以」的恍惚。顺便说一句,我完全不会写代码,从来没做过软件开发。而在这次 48 小时之前,我还经历过另外一场十天的狂奔——产出了将近 30 万行代码,然后几乎全部删掉。这件事让我想了很久。

鑫鑫: 等一下,30 万行——你这是怎么开始的?什么契机让一个不写代码的人,一上来就堆到这个体量?

嘉伟: 一切的开始,是 Claude Opus 4.6 发布。我第一次用的时候真的被吓到了。不是那种「哇好厉害」的吓,是那种「等等,这东西能做到什么程度」的吓。我脑子里冒出一个念头:能不能让它帮我从零开始做一个项目?我大概说了我的想法,它就帮我写了一个架构文档,然后开始开发。两天下来,做出了一个雏形。

做着做着,我开始琢磨一个问题:怎么才能让 AI 7×24 小时帮我干活,而且真正创造价值?我想到了两条路——一是让它自己对照架构文档和代码自己发现机会、自己实施。二是做大量的真实测试,在真实设备上跑真实操作,让它自己观察 bug、自己修,直到链路跑通。现在回想起来这两条路都有点天真,但当时我是真的觉得可行。

鑫鑫: 你人在旅游,AI 在后台帮你写代码——听上去像未来主义的剧情。但十天后真去看,结果是什么样的?

嘉伟: 我开始了一场疯狂的实验。人在外面旅游,我通过手机 SSH 加 tmux 的方式,远程操控整个开发过程。消耗了夸张数量的 token——具体多少我不说了,说出来有点心疼。十天时间,这个项目累计到了将近 20 万行 Go 代码加 10 万行测试代码,变成了一座庞大的代码山。而诡异的是,这十天里我一次都没有真正上手体验过这个产品。我就是让它写,写完 review,继续写。当我终于停下来开始真正测试的时候,问题来了:一个最基础的主要链路,根本不通。30 万行代码,基础链路不通。

鑫鑫: 30 万行的项目,基础链路居然不通。你当时第一反应是什么——是修,还是已经感觉不对劲了?

嘉伟: 我先按反应去修。让 AI 按照测试结果来改,改完再测,测完再改。反反复复,终于把这个链路跑通了。但很快我发现了一个更深层的问题:任何一个小改动,都需要消耗夸张数量的 token。20 万行代码的项目,改动本身就极其吃力——就像在屎山上动土,又慢,每次改动效果经常不理想,还要花钱。我眼睁睁看着 token 消耗蹭蹭往上涨,心里开始发虚。我开始反思:这 30 万行代码是十天肝出来的,看起来大部分都没真正产生价值。我原本只是想到什么功能就让它来做,然后 review,然后继续。这不是在创造价值。这是在堆砌负债。

鑫鑫: 于是你做了那个挺重的决定——推倒重来。30 万行说删就删,多少有点肉疼吧?

嘉伟: 这个决定下得不容易。30 万行代码说删就删,多少有点肉疼。但我越想越觉得,留着才是更大的浪费。这一次,我花了很长时间和 Claude Code 进行深度的对话。我问它:我到底要解决什么核心问题?这个问题的解决有什么社会价值?最开始我的动机很简单——只是想 vibe coding 出一个类似公司去年做的产品,证明一个没代码基础的人也能搞出还不错的东西。有点炫技的心态,我承认。但现在我的心态变了。我想要做一些真正有意义的事情,解决一些对社会、对世界真正重要的问题。这个转变是怎么发生的?我也说不清楚。可能是因为那 30 万行代码删掉的时候,我突然意识到:如果做的事情本身没有意义,那再多的代码也只是自我感动。

鑫鑫: 重做之后的过程,跟之前最大的区别在哪?还是十天,但路径完全不一样?

嘉伟: 这一次我们回到做产品最核心的过程:写 MRD 文档,写 PRD 文档,然后才是架构设计。在架构设计阶段,我花了大量时间做 Deep Research——理解到底什么可以用、什么不该用,做一些关键的决策。我逐渐意识到一个事情:在 vibe coding 时代,实现变得很快,所以产品设计、哲学、原则以及架构选择的影响,变得极其巨大。

十天时间,就可以让 AI 发展出似是而非的屎山代码。后续所有的投入,都变成了持续不断的巨大浪费。这一次我变得审慎很多。每一行代码,其实是 liability,是负债——而不是 asset,不是资产。因为代码越多,AI 维护就会越来越难。我花了半天加一晚上的时间,做了一个我觉得有意义和价值的架构与产品,把问题、创新、设计哲学全都文档化写在了项目里。开发的过程中,在大概 5000 行代码的时候,我就开始针对最核心的功能和组件做真实的测试——把异构硬件、引擎、模型很早地带进来做真实验证。每次改动之前我都会问:这是否违反了我明文写下来的设计原则?

鑫鑫: 听下来,vibe coding 不像很多人想的那种轻松事。AI 帮你写,你反而更累?

嘉伟: 整个过程我发现,用 Coding Agent 协作其实比原本累得多。很容易进入到心流状态——一个 Claude Code 在等,就开一个新的;卡住了,就再开一个新的。不断地回过来看每个的进展,做一些卡点的排除、走偏时候的纠偏,还要想明白对全局的影响。5 到 6 个小时之后,感觉像是打了一场高强度的游戏,而且是一个人三开进行操作的感觉。脑袋发懵,身体被掏空。我以前以为 vibe coding 是轻松的事情,让 AI 干活自己躺平。真的做了才发现,不是这样的。它更像是从一个写代码的人,变成了同时指挥五个写代码的人的人——你不用自己写了,但你要做更多的判断、协调、决策。

鑫鑫: Vibe Coding 不是一个让事情变简单的魔法,它是一个杠杆——可以放大你的效率,也可以放大你的混乱。每一行代码都是负债,不是资产。今天就到这。