我用 vibecoding 做网站、APP、小程序,大半年了,基本都能交付。速度是真的快——以前要一周的东西,现在周末就能出个能跑的版本。

这种速度会上瘾。上瘾之后,人会本能地想要更快。

直到最近我想做一个投资系统,做了三个版本,全废了。现在回头看,三个版本废在三个不同的地方,但根子上是同一件事:我太想快了,快到跳过了“搞清楚自己到底要什么”这一步。

想清楚之后,我换了一套做法。现在第四版在跑,目前没再出现前三版那种“做着做着整个方向漂掉”的情况。

这篇文章前半段讲我踩的三个坑,后半段讲我现在具体怎么干的。踩坑的部分你可以对照自己,解法的部分你可以直接拿去试。


第一版:目标没想清楚,但架构已经搭起来了

第一版的问题是:我急着开始。

我对投资系统的想法很大——数据层、策略层、回测层、风控层、报告层——脑子里有一个模糊的“大系统”的样子。但每一层具体解决什么问题,输出什么东西,我其实说不清楚。

正常的做法应该是先停下来想清楚:我到底想做什么?投资研究系统?持仓风控?策略回测?辅助日常决策的个人工作台?这些方向差别很大,对应的系统完全不一样。

但我没有。我太想快点看到东西了。

我直接让模型帮我设计架构。它很快给了我一套方案:模块清晰,层级漂亮,术语专业。我读完的第一反应是——不错,就是这个。

这个“不错”的感觉,后来想起来很可怕。 做网站的时候,一个按钮放错了位置我能立刻说“这里不对”。但面对一份投资系统的架构文档,我分不清它是真的解决了我的问题,还是一堆正确的名词摆在一起。

我没有判断力,但我有“赶紧动起来”的冲动。模型给的那份专业文档,刚好让我跳过了“想清楚”这一步还不觉得心虚。

做了两周,越做越觉得不对——很多模块做出来之后我不知道拿来干嘛,系统输出的东西跟我模糊中想要的对不上。第一版废了。


第二版:我甩手让模型跑,贪快不验证,漂移了都没感觉

第一版的教训我以为自己吸取了:这次目标稍微清楚一点了。

但第二版我犯了另一个“求快”的错:执行阶段,我彻底甩手了。

我让模型按架构拆任务、写可执行文档、生成代码。文档看着很专业,任务列表也很完整。但我有时候贪快,没有一一搞懂每个任务的实现细节到不到位。

心里想的是——都 vibecoding 了,我提方向,它干活,细节让它自己审。这不就是 10 倍生产力?不得让模型自己跑起来?我干嘛还一个个检查?

这个想法的问题在于:做网站的时候甩手没事,因为 AI 写完一个页面我打开看一眼就知道对不对。但投资系统的“数据模块”写完了,我看不出对不对。“策略模块”跑起来了,我不知道逻辑有没有问题。

我把“自己没能力验证”当成了“不需要验证”,还给它起了个好听的名字叫“高效委托”。

做了一个月,漂移得一塌糊涂。各种模块之间逻辑不自洽,输出的东西我既用不了也说不清错在哪。而且因为我一直没验证,发现的时候已经偏了很远,改都不知道从哪改。第二版废了。


第三版:每次发现不对,我急着重构,不愿意停下来重新想

第三版我觉得自己终于学聪明了——这次我注意验证了,也抓得更紧了。

但很快我又掉进了第三个“求快”的坑:一发现问题,我第一反应不是搞清楚问题到底出在哪,而是立刻重构。

重新设计架构,重新拆模块,重新组织文档。每次重构完我都会获得一波新鲜的掌控感——架构图更清楚了,命名更合理了,“这次应该稳了”。然后信心满满地往下推,过一阵子又觉得哪里不对,然后又想重构。

重构很快,模型帮你一晚上就能画一张新架构图。但“我到底想用这个系统解决什么具体问题”——这个问题我始终没有坐下来认真面对。

我在用“重新画架构图”的速度感,逃避“重新定义问题”的笨功夫。

第三版废了之后,我终于意识到:三个版本看起来废在三个不同的地方——第一版没想清楚就开始、第二版执行不验证、第三版有问题就重构不复盘。但根子上是同一件事:

我太迷恋速度了。Vibecoding 带来的那种“想到就能做到”的快感,让我本能地跳过所有需要慢下来的环节——定义目标、验证结果、复盘问题。结果就是经典的欲速则不达:越想快,绕的弯越大。


三次废掉之后,我换了一套做法

第三版废掉之后,我强迫自己停了一周。不是休息,是逼自己想清楚:之前做网站能成,做这个不行,到底差在哪?

答案其实很简单:做网站的时候,AI 写出来的东西我一眼就能看出对不对。做投资系统,我看不出来。而我又不愿意慢下来去建立这个判断力,总想靠速度蒙过去。

所以第四版我的核心变化不是“更努力”,而是在每个关键节点上,给自己加了一道“减速带”——强制停下来验证,不过关不往前走。

下面是我现在实际在用的四个做法。


做法一:架构不让一个模型说了算,让两个模型对着审

以前我让一个模型出架构,自己读完觉得“不错”就开干。现在不这么玩了。

我用 Opus 出架构方案,然后把方案扔给 Codex(或 Claude),让它当对手方来审。

给审核模型的 prompt 不是“帮我看看有没有问题”这种客气话,我会明确让它做三件事:

  1. 这个模块真的需要吗? ——指出哪些模块是“看起来专业但现阶段用不上”的
  2. 这个假设成立吗? ——每个模块背后都有隐含假设(比如“用户需要实时风控”),逐一挑战
  3. 有没有覆盖我的真实需求? ——把我的原始需求也喂给它,让它对照检查架构是不是在解决我的问题,而不是在解决一个更通用的问题

审核模型和出方案的模型不是同一个,这很重要。同一个模型审自己的方案,大概率会自圆其说。 换一个模型,它没有“沉没成本”,该砍的模块它真的会建议你砍。

上次用这个方法,Codex 直接指出我的架构里有三个模块是“投资系统标配但你的场景根本用不到”的。如果我自己读那份架构,一定会留着它们——因为看起来很专业。

这一步本质上是逼自己在“动手之前”多花半天时间。这半天省的是后面几周的弯路。


做法二:每做完一个模块,起一个 subagent 做目标对齐

这是解决第二版那个问题的——做着做着漂移了但没感觉。

以前的情况是:一开始定了目标,然后拆任务、写代码,写着写着就偏了。但每一步看起来都是合理的,等发现偏了已经偏了很远。

现在每个模块完成之后,我会起一个 subagent,让它拿着最初的目标文档,对照这个模块的实际输出,回答三个问题:

  • 这个模块的输出和最初目标之间是什么关系?
  • 它有没有引入目标里没提过的新概念或新依赖?
  • 如果砍掉这个模块,目标还能不能达成?

subagent 的好处是它只看目标文档和当前模块,不看中间过程。人在过程中会被“已经花了的努力”绑架,subagent 不会。 它就是一个冷血的检查员——你给它目标和产出,它告诉你对不对得上。

第四版做数据模块的时候,subagent 告诉我:“你的目标文档里写的是'每天看一眼持仓风险变化',但这个数据模块在做全市场实时数据接入,两个东西差了十倍复杂度。”

如果没这一步,我大概率又会顺着“全市场数据”走下去——因为它看起来更完整。这就是典型的求快心态:做一个更大的模块,感觉上像是在做更多,实际上是在偏离目标。


做法三:不从架构开始,从一个我能亲手验证的最小功能开始

前三版我都是从架构开始的:先画系统全景,再拆模块,再分别实现。画架构很快,很有成就感,但每次都在后面付出代价。

第四版我反过来了:不画架构,先做一个我能亲手验证对不对的最小功能。

不是“做一个投资系统”,而是“做一个每天早上告诉我持仓风险变化的东西”。

为什么是这个?因为这个东西我能判断:

  • 我的持仓有哪几只,我自己清楚
  • 风险变化是涨了还是跌了,看一眼行情就知道
  • 它给我的提醒准不准,我能手动验证

做完这一个最小闭环,我就重新拥有了判断力。 从“我看不懂这个系统对不对”变成了“今天这个提醒准不准,我对一下就知道”。

然后在这个基础上加功能:加交易复盘、加策略记录、加回测对比——每加一个,我都能验证它对不对,因为已经有了一个能跑的底座做参照。

这个做法最反直觉的地方是:它比直接搭大架构“慢”,但实际上快得多。 因为前三版每版都花了几周最后全废,第四版从最小闭环开始,一周就有了一个确定能用的东西,后面每一步都是在稳固的基础上加,不用返工。


做法四:每个任务带验收样例,没有样例不开工

前三版我给模型的任务是这样的:“实现数据模块”。

现在是这样的:

从 X 数据源拉取过去 30 天的收盘价,输出一张 CSV,格式是 [日期, 代码, 收盘价, 涨跌幅]。用 [具体三只股票] 做验证,结果应该和 [某网站] 的数据一致。如果数据源无响应,返回错误信息而不是空表。

区别不是详细程度,是后面那句“结果应该和 XX 一致”。

这就是验收样例。它让我可以在不懂实现细节的情况下,判断这个任务做对了没。

以前拿到模型的产出,心里其实没底——它说“完成了”,我看了看代码没报错就过了。本质上还是求快:不想花时间验证,想赶紧进入下一个任务。 现在拿着验收样例去比对,要么对得上,要么对不上,没有模糊空间。

写验收样例会花额外的时间吗?会。但这十分钟花出去,省的是后面发现“做错了但不知道错在哪”的几天。


回到最初的问题

三版投资系统为什么全废了?

不是 AI 不够强,是我在一个自己判断不了的领域里,太着急了。急着搭架构、急着出结果、急着往前跑,跳过了所有需要慢下来的环节。

Vibecoding 的速度是真实的,但速度本身不解决问题。如果方向没钉住,跑得越快偏得越远。

我现在的做法说白了就一句话:在关键节点上逼自己慢下来。

  • 架构出来了 → 慢一步,让另一个模型审完再动手
  • 模块做完了 → 慢一步,让 subagent 对齐完目标再继续
  • 想做大系统 → 慢一步,先做一个我能亲手验证的最小功能
  • 准备开始写代码 → 慢一步,先写清楚验收样例

每一个“慢一步”,花的都是半天到一天。省下来的,是几周的弯路。

Vibecoding 真正的效率不是“快”,是“不返工”。


这篇没有利益相关,就是连废三版之后的实战总结。如果你也在 vibecoding 里有过类似的经历,评论区聊聊——你是在哪个环节摔的?