你永远可以再猛吸一口 token 继续 vibe 下去

当所有决策都成立时,优先级就消失了
这几天其实没什么特别的。
如果一定要说特别,就是我们参加了一个黑客松比赛,要在两周内做一个 Demo 出来。
两周这个词听起来很友好,既不像两天那样让人绝望,也不像两个月那样让人松懈。它处在一种很暧昧的位置:足够你产生幻想,也足够让你在最后几天崩溃。
一开始我们是很克制的。
真的。
大家都说:"先做核心。"
我也点头。
但问题在于,人一旦开始写代码,就会变得不太诚实。
比如我写了一个接口,本来已经能跑了,但我忽然想到:
"这个地方是不是可以再抽象一下?"
于是就抽象了一下。
然后又想到:
"既然都抽象了,要不要顺便支持一下扩展性?"
于是又支持了一下扩展性。
既然都支持了扩展性了,要不顺便把 UI 也优化的好看一些。
于是 UI 变得 fancy 了起来。

在 AI 时代,"既然"和"于是"变得很容易获得。
你甚至不需要太多理由,只要愿意继续说下去,它就会替你把逻辑补齐。
这件事让我有点不安。
因为很多时候,你写出来的并不是思考,而是一种"可以成立的表达"。
于是你继续写。
既然它看起来成立,那就先让它成立一会儿。
反正世界上大多数东西,也都是先成立,再慢慢变得不成立的。
再然后事情就开始变得像某种缓慢的滑坡,你其实知道在往下走,但你也没有真的停下来。
两周过去一半的时候,我们的系统已经开始呈现一种奇怪的气质:
它什么都有一点,但没有什么特别像它自己。
而你永远可以再猛吸一口 token 继续 vibe 下去。

有一天晚上,我盯着屏幕看了很久。
不是在思考架构,也不是在优化性能。
只是单纯地在想:
这个东西,如果拿给一个完全不懂的人看,他会记住什么?
答案是:什么都不会。
这件事让我稍微有点不安。
但也只是稍微。
因为不安这种东西,在 deadline 面前通常活不过 24 小时。
后来我开始注意到一个很有意思的现象:
我们每加一个功能,都有一个"合理理由"。
- 这个很重要
- 这个也可能用得上
- 这个以后说不定会被问到
这些理由单独看都成立。
问题是,它们加在一起之后,就开始互相抵消。
最后你得到的不是一个更强的系统,而是一种"平均意义上的正确"。
我突然意识到一个有点不太体面的事实:
所谓"做得很好",有时候只是"什么都没敢放弃"。
但真正让我开始怀疑人生的,不是代码,而是我自己。
因为我发现我在很多事情上,其实都在重复同一件事:
我知道优先级很重要。
我真的知道。
我甚至可以把它讲得很清楚,像在给别人做培训一样清楚。
但这并没有什么用。
因为一旦进入真实场景,我还是会被各种"看起来也不错的事情"吸引走。
就像一个人说自己只吃健康食品,但路过烧烤摊的时候,还是会停下来思考人生。
后来我开始觉得,"知道"这个词本身可能有点被高估了。
知道一个道理,并不意味着你拥有它。
更准确一点说:
知道一个道理,只意味着你在安静的时候,支持这个道理。
但人生大部分时间,并不安静。
比赛快结束的时候,我们不得不开始删东西。
删代码这件事有点奇怪。
写的时候你觉得自己在创造世界,删的时候才发现,其实你只是一个临时搭建者。

很多东西删掉之后,系统反而变清晰了。
甚至有点过于清晰,清晰到让人怀疑:
我们之前到底在忙什么?
有一刻我突然明白一件事:
优先级这东西,其实不是"排序问题",也不是"选择问题"。
它更像一种暴力行为。
你必须不断地告诉自己:
"这个不做。"
"那个也不做。"
甚至有时候是:
"这个虽然很好,但它不属于这里。"
这件事不太优雅,也不太理性。
但有效。
后来我尝试给自己设了一些规则:
比如只保留一个目标。
比如所有事情都要问一句:
"它是不是在直接帮我更接近那个目标?"
如果不是,那就先放着。
听起来很理性。
但实际上更像是一种心理上的自我约束装置。
因为如果不这样,我很容易重新变回那个:
什么都想做一点的人。
写到这里,我忽然有点怀疑,这篇文章本身也有点危险。
因为它看起来像是在总结经验。
但实际上,很多时候,我还是会在别的项目里重复同样的错误。
人类的一个基本能力可能是:
能够从错误中学习,但学习之后仍然保留犯同样错误的自由。
所以如果一定要说这次比赛留下了什么东西,那可能不是"优先级很重要"这种正确结论。
这种结论太轻了,轻到可以随时被新的兴奋感吹走。
真正留下来的,是一种不太舒服的感觉:
当你试图同时做好所有事情的时候,你最终可能什么也没真正做好。
当然,这件事也没有那么严重。
世界不会因为一个 Demo 变得更好或者更坏。
我们也不会因为这次做得好一点,就突然变得更清醒。
人还是会继续加功能,继续犹豫,继续在"要不要再做一点点优化"这件事上浪费时间。
只是偶尔,在某个晚上,你会想起这件事:
也许真正重要的不是做得更多,而是停得更早一点。
然后你会继续写代码。
因为不然也没别的事可做。
以上
配图清单
说明:正文已有一张真实配图(token.png,象征"猛吸一口token继续vibe"),这里补充封面图和另外两处场景插画。
00-cover.png
位置:
frontmatter(文章封面)
比例要求:
21:9 或 2:1,至少 1600×900
用途:
封面图 / 分享卡片
类型:
场景插画
主题:
在deadline逼近下,一个人一边写代码一边不断"再吸一口"的失控松弛感——呼应标题的核心意象。
画面描述:
- 主体对象:一个人物侧影坐在电脑前,正对着屏幕深吸一口气,吸入/呼出的气体化作漂浮的token符号(抽象的文字碎片或代码符号),缓缓上升消散
- 空间关系:人物居中偏左,飘散的token符号占据右侧和上方空间
- 动作:吸气动作带有轻微夸张感,符号漂浮呈螺旋上升
- 情绪:疲惫又上瘾,带点自嘲式的松弛感,不悲情
- 视觉隐喻:"vibe coding"的失控和上瘾感
- 重要元素:不需要写实还原编程画面,用抽象漂浮符号即可
构图要求:
- 主体位置:人物居中偏左
- 留白区域:右侧和上方留白容纳漂浮符号
- 横向还是纵向:横向
不要出现:
- UI截图
- 复杂信息
- 文字
01-feature-creep.png
位置:
"于是 UI 变得 fancy 了起来"段落后(token.png 之前)
比例要求:
16:9
用途:
正文(时间线/连环画)
类型:
场景插画
主题:
"既然...于是..."式的功能堆叠像滚雪球一样越滚越大。
画面描述:
- 主体对象:一个人物推着一个雪球往前走,雪球表面贴着许多写着"顺便""既然""也支持一下"字样的小标签
- 空间关系:人物在雪球后方推动,雪球从左到右逐渐变大(可用连续几个尺寸的雪球表现"越滚越大"的时间线感)
- 动作:推动、雪球体积渐增
- 情绪:一开始轻松,逐渐显出吃力
- 视觉隐喻:需求蔓延不可控
- 重要元素:雪球上的标签文字是必要的(这是场景插画里唯一必须出现的文字,因为它直接是这句话"既然/于是"的视觉化,若无文字读者无法get到这个梗)
构图要求:
- 主体位置:横向排列,从左到右
- 留白区域:上下留白
- 横向还是纵向:横向
不要出现:
- UI截图
- 复杂信息
02-deleting-code.png
位置:
"写的时候你觉得自己在创造世界,删的时候才发现,其实你只是一个临时搭建者"段落后
比例要求:
4:3
用途:
正文
类型:
场景插画
主题:
删代码时的释然——拆掉多余的部分后,系统反而变得清晰。
画面描述:
- 主体对象:一个人物正把一座用抽象积木/代码块搭成的复杂建筑一层层拆下来,拆除的部分堆在一旁,建筑的核心结构逐渐显露出干净的轮廓
- 空间关系:人物在中景,建筑在画面中央,拆下的碎块散落在下方
- 动作:拆卸中的动态感,碎块正在脱落
- 情绪:从不舍到释然的转变
- 视觉隐喻:做减法反而让系统更清晰
- 重要元素:无需文字,靠"建筑变干净"的视觉变化本身传达
构图要求:
- 主体位置:居中
- 留白区域:下方留白容纳拆下的碎块
- 横向还是纵向:偏方形
不要出现:
- UI截图
- 复杂信息
- 文字