开发圈的流行词:Vibe Coding

开发圈的流行词:Vibe Coding

前阵子,开发圈突然多了一个很顺口的词:Vibe Coding。

它来自 Andrej Karpathy 在 2025 年 2 月发的一条推文。大意是:别太纠结代码本身,告诉 AI 你想要什么,看到效果不对就继续说,遇到报错就把报错丢回去。一路说、一路跑,居然也能把东西做出来。

我看到这个说法时觉得很形象。过去用 AI 写代码,多少还像高级一点的自动补全:它写几行,我逐行检查,再决定要不要收下。现在这个关系开始倒过来了。人负责描述意图、判断结果,模型负责在代码里钻来钻去。有时改动已经铺开好几个文件,我先看到的是“它跑起来了”,而不是每一行究竟怎么写。

这感觉确实很好,尤其面对一个迟迟不想动手的小工具。原本要先搭环境、翻文档、想目录,兴致往往在第一步就耗完了;现在可以从一句很含糊的“我想要……”开始,先让东西出现,再慢慢修。Vibe Coding 最吸引我的地方,不是让谁突然变成了程序员,而是它把“开始做”这件事变轻了。

但它也很容易让人上头。页面能打开、按钮能点,并不等于代码真的可靠。只要项目需要长期维护,或者碰到账号、付款、隐私这些问题,我还是得知道数据去了哪里、错误怎么处理,以及哪一段出了问题该由谁接手。AI 可以帮我跑得很快,但不能替我判断方向,更不能替我承担结果。

所以我暂时把它理解成一种很适合探索的工作方式:做原型、写一次性脚本、验证一个念头时,尽管跟着感觉走;真要留下来长期使用,就得在某个时刻停下来,把代码重新读懂,把测试、边界和退路补上。

也许以后我们不会再特意叫它 Vibe Coding。就像现在很少有人强调自己在用代码补全一样,它可能只是慢慢混进日常开发里。不过在 2025 年春天,这个有点玩笑意味的名字,确实说中了我刚刚感受到的变化:写代码第一次不再总是从代码开始。

补记于 2026 年

一年多后再看,这篇小记有点青涩,但我不想把它改写成一篇事后诸葛亮式的趋势总结。

这段时间,AI 已经不只是在编辑器里补几行代码。它会读整个项目、查日志、修改文件、运行测试,再根据结果继续修。最近为了在 Mac 上折腾 CrossOver 游戏,我就是这样和它一起排查问题:很多时候我说的是现象,它去找真正的故障点;我否掉一个方向,它再换一条路验证。这个过程比我当时理解的 Vibe Coding 更认真,也更接近协作。

不过当年的提醒仍然有效:探索时可以跟着感觉跑,留下来的东西还是要讲证据、能复现、可回退。下一篇,就从这次折腾说起。

记录某轻小说网站字符混淆解码过程

记录某轻小说网站字符混淆解码过程

最近经常在哔哩轻小说上看书,想做一个爬虫制作成 Epub 文件,在 Apple Books 上阅读,网站html源码整体很好解析,但是文本内容针对特定字符做了替换,需要找到js代码中的字符对照表,才能解密。

阅读更多
favicon与apple-touch-icon

favicon与apple-touch-icon

在根目录下添加 apple-touch-icon.png 可以让safari读取作为标签图标

1
<link rel="apple-touch-icon" href="/img/apple-touch-icon.png"/>
阅读更多
用MathJax进行LateX公式渲染

用MathJax进行LateX公式渲染

理论上来说只要载入MathJax.js就行了,于是直接修改了模版header文件,结果发现了一个坑,就是我选的CDN加速服务不是https的,所以以https访问的话就没法加载,查了好多资料才发现原来是这个问题。

于是改用BootCDN的加速服务,测试效果如下

$$ \LaTeX{} $$
$$ J\alpha(x) = \sum{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha} $$

可以看到公式正确显示了。

无穷大值∞的问题

无穷大值∞的问题

在算法题中,经常用到∞作为值,而C/C++是没有无穷大值的,之前是模仿网上一些代码,将INF设为0x7fffffff,这是32-bit int 的最大值214748367

阅读更多