Vibe Coding:当写代码变成多巴胺游戏

你有没有过这种感觉——凌晨两点,突然想通了一个方案,不爬起来写完根本睡不着。

恭喜你,这不是 bug,是你的多巴胺在作祟。


一、什么是 Vibe Coding?

简单说,就是跟着感觉写代码,而不是跟着规范走。

具体表现大概是:

看到一个炫酷的技术,不试试浑身难受

琢磨一个"万一用得上"的功能,结果周末全搭进去了

PR 标题写的是"fix typo",点进去一看——半个系统都重构了

是不是有点眼熟?这太正常了。


二、这不是快乐,是上瘾的配方

先纠正一个常见误解:多巴胺不是"快乐"本身,它更像是大脑给你画的一个饼——"快到了,好事在前面"。

你期待一个结果,大脑就开始分泌多巴胺。真正拿到奖励的时候?反而没那么 high 了。

这个机制原本是为了让你追猎物、找水源,在漫长的进化里活下来。现在呢,被搬到了屏幕前,刺激程度直接拉满。


三、为什么写代码这么容易上头?

不确定性才是精髓

你有没有过这种体验——一个 bug 调了半天,不知道下一秒会不会突然跑通。那种"差一点"的感觉,比真的跑通了还让人欲罢不能。

这跟开盲盒、刷短视频是一个原理。不确定的奖励,就是比确定的奖励更能让人上头。

那个绿色的格子

/* bash */
$ npm test

2 passing
测试通过的满足感!

就这一个画面,有人能盯着看好几秒,眼睛都不眨。

现代 IDE 把这个玩到了极致——保存就刷新,测试绿了,CI 也绿了。每一步都在给你打气,让你接着干。

看得见的进步

学英语、健身这些事,进步是模糊的,你今天比昨天好了多少,很难说清楚。写代码不一样——GitHub 绿格子一天天变密,star 数一点点往上涨,每一行 commit 都是实实在在的痕迹。进度看得见,奖励摸得着,大脑很难不上瘾。


四、技术栈焦虑的真相

好不容易把 React 玩熟了,结果圈子已经开始聊 Svelte 了;Vue 还没学明白,Solid 又冒出来了。

这背后其实是个生理问题。

新东西刚接触的时候,大脑最兴奋——未知意味着可能性,意味着多巴胺。但一旦"学会了",新鲜感消退,那股劲就下去了,只好再找下一个。

所以你收藏夹里堆了几十个"待学"教程,看见"必学技术"的文章必点进去——这真不全是你意志力的问题,别太自责。


五、它不是非黑即白的

先说清楚——vibe coding 不是洪水猛兽。

它带来的好东西是真实的。好奇心驱动你不断接触新东西,快速试错让你在短时间内跑通一个原型,解决一个难题带来的成就感,能让你连续亢奋好几天。

但硬币的另一面也得认。欠下的技术债不会凭空消失,只是暂时被热情盖住了。追求即时满足久了,做事容易缺乏长期规划。总想重构到完美,结果项目永远上不了线。连续通宵几晚之后,倦怠感说来就来。

关键是,你需要知道自己在哪个状态里。


六、怎么和它好好相处

先认清楚自己

在动手之前,停一下问自己:我是真的需要这个技术,还是只是因为它新?三个月后回来看这段代码,我会骂自己还是感谢自己?

就这两个问题,能帮你省掉不少弯路。真的。

给反馈循环装个过滤器

正常的开发流程其实自带节奏感:需求、设计、实现、测试、部署、反馈。问题在于 vibe coding 让人跳过了前面几步,直接跳到"写代码最爽的那部分"。

试着把节奏还回去,让每一步都真的有意思,而不是光图痛快。

让好习惯也能上瘾

换个思路——不是消灭多巴胺,是把它引到值得的地方。

测试覆盖率从 60% 爬到 80%,爽不爽?文档从一片空白写到完整,爽不爽?Code Review 一遍过没人提 bug,爽不爽?

这些同样能触发奖励机制,只是副产品更有价值。

给自己划条线

有些事可以放飞:周末的 side project、个人工具、纯实验性的探索。

有些事得守规矩:生产环境的代码、团队协作的部分、涉及其他人维护的系统。

不用一刀切,但得清楚哪块是"实验田",哪块是"庄稼地"。


七、几个小建议

不用记太多,就三条。

承认它的存在。 vibe coding 不是缺点,是你创造力的一部分。别拧巴,接纳它,用它而不是被它用。

分清楚场合。 工作代码和周末项目是两套逻辑——前者讲纪律,后者尽管造。混乱的不是你,混乱的是把两套逻辑混在一起用。

记录你的决定。 哪怕写三行注释说"为什么选这个方案",六个月后你打开那坨代码,会发现这是你给自己留的最好的礼物。


写在最后

Vibe coding 本质上是一场多巴胺游戏,但它背后站着的,是你真实的热情和好奇心。

你需要做的,不是消灭它,而是搞清楚它什么时候在帮你,什么时候在骗你。

下次凌晨两点,你忍不住爬起来想重写整个项目的时候——深呼吸,然后问自己一句:

"这是灵感,还是多巴胺在作祟?"

想清楚的那一刻,你就已经赢了一半。

顺手点个赞,就当给自己今天又多巴胺分泌了一下。


金句速览

多巴胺不是快乐分子,是预期分子——我们上瘾的不是奖励本身,而是追逐奖励的感觉。

Vibe coding 是创造力的燃料,也是技术债务的温床——关键看你给它划定了什么边界。

与其用意志力对抗多巴胺,不如把它引向测试覆盖率、引向完整文档、引向真正重要的功能。

Read more

CLI 工具多版本管理器 - asdf

CLI 工具多版本管理器 - asdf

asdf 是一个 CLI 工具,可以根据每个项目管理多个工具或语言运行时版本。它就像 gvm、nvm、rbenv 和 pyenv(以及更多)的合一工具!只需安装您语言的插件即可! 这个随手起的名字,可能是目前地表最强版本管理器。 https://github.com/asdf-vm/asdf 一、安装 asdf 以 macbook 为示例 brew install asdf asdf -v asdf version 0.16.2 0.16.0 以上命令有较大变更,详见:https://asdf-vm.com/guide/upgrading-to-v0-16.html#breaking-changes 本文使用

By xiezhixin
golang proto api 校验国际化 protovalidate

golang proto api 校验国际化 protovalidate

众所周知,protobuf 原型文件扩展很多功能,比如生成 http 接口层代码,顺势就有了生成接口参数校验代码的需求。 早期可以使用https://github.com/bufbuild/protoc-gen-validate 来实现,通过生成特定的 go 代码的方式来实现校验。 github 中也提到目前趋于稳定,不会有更多新特性的支持,推荐大家使用新的版本 protovalidate,https://github.com/bufbuild/protovalidate 。该版本是protoc-gen-validate 的“精神继承者”。它不需要任何代码生成并支持自定义约束。 现在我们尝试新版本,并且增加国际化支持。 go get github.com/bufbuild/protovalidate-go import "github.com/bufbuild/protovalidate-go" syntax = "proto3"; package

By xiezhixin
沪ICP备2022013452号-1