关于 Vibe Coding 的感受

10 min

其实在去年被 Anthropic 封了两个账号之后就没有再尝试过 Claude 了,因为注册账号成本还挺高的,最开始是用 sms activate,账号很快被封禁了,后来换了 giffgaff,没想到也没几天就被 block 了。身在大陆想体验 OpenAI、Anthropic 这些公司的产品真的有很多门槛,为了充值也注册过虚拟信用卡、用虚拟币去充值等等,接着不是信用卡倒闭,就是账号被封(OpenAI 退钱!)。在浪费掉几个手机号和几十美刀之后,认命放弃,大部分对大模型的调用都集中在国产的几家公司和 OpenRouter 了。

但是这半年以来一直在 timeline 上看到 Claude Code 各种超强的战斗能力后就有点按捺不住了,遂尝试了国内模型替换的方式,一开始是 GLM4.5,当时看推上的 KOL 们安利 50 元一个月的套餐,我很快就上了钩,没想到充值后速度巨慢,无法忍受便找客服退了款(虽然他们的条款里不能退,提工单后还是很快得到了解决)。

上一次退款大模型服务还是 DeepSeek 横空出世那会儿,充了 100 做 API 调用,也是慢的无法忍受。大家都希望快速上线自己的功能,但是在刚上线 infra 还没跟上的时候就想着圈人圈充值,好在可以退款。可阿里云百炼就很狗了,先给你免费额度,然后默认情况下如果你免费超了并不会提醒你,但是等到你欠费了的时候打电话给你,让你补欠费🤢。我知道肯定有地方能设置阈值,但是作为 default 的配置,在涉及到用户资产的时候怎么都得客户第一啊。

说回 CC,在体验了 GLM 4.5 的 CC 和 Kimi K2 的 CC,大致感受到了 CC 的一个整体流程,比如 sub-agents 定义,自定义 command,plan mode / accept mode 等等,可主观上的感受还是不够强大,感觉没有那么神。然后就想着不如再次尝试订阅 CC。一番简单折腾之后,it works。

  1. GiffGaff 换号注册(免费)
  2. 一条稳定的代理线路( Racknerd 上部署的 hysteria2,可以参考这篇:年付80元性价比跳墙方案2023年
  3. 美区 itunes 充值卡,直接 iPhone 上订阅

写一个应用看看

体验的版本是 20 刀的套餐,所以也只能使用 sonnet 模型

恰好我觉得这个新博客需要一个图床,赛博菩萨 Cloudflare 的 R2 其实就挺适合我的,于是就想着能不能做一个 TUI 版本的 R2 管理器,大概包含文件浏览、上传等等简单功能即可,而我在 TUI 这方面确实一点经验都没有,不如就交给 Claude Code 试试。现在,Vibe Coding 的一种定义就是仅输入需求,几乎不需要自己写一行代码。

初感受:惊艳!

我只是简单地描述了需求,CC 立马就开始疯狂运转,没过多久一个简单的 CLI 就写完了,而且是可用的。这种感觉很奇妙,未来脚本小子会慢慢消失,或者成为非物质文化遗产。简单测试之后就没好让它歇着,继续让它快马加鞭把 TUI 给我实现出来,第一版本的诞生大概只用了几分钟。

第一个版本
第一个版本

于是开始想着让它给加一些功能,比如文件详情的展示和图片的预览,很快在图片的预览上开始出幺蛾子了,它知道用 kitty graphic protocol 来实现在 Ghostty 和 Kitty 渲染图片,但是写完代码之后图片并不能很好地展示,反复提示多次都无法成功地完成任务,而 5 小时的额度却快用完了,我有点接近小小的郁闷,因为落差来得太快了。在它需要”休息”的时候,我没有闲着,自己开始看协议的实现和一些开源的项目,再看 CC 的代码,大概给它找到了 BUG。等到它额度可用时直接指出了 bug 所在的地方,很快图片就能渲染了。

所以这里有一个很重要的问题:如果我没有一定的编程基础,只靠描述 BUG 还需要多久能解决这个问题?

图片崩溃
图片崩溃

开始崩溃

心态有点崩是从图片不能渲染开始的,彻底崩溃是在图片渲染问题解决不了的时候。反复文字描述+截图描述,加之又一次额度用完,我觉得它在此时此刻就是一个智障,我也没有精力去了解怎么解决 bubbletea 和图片渲染的问题了,关机睡觉。

5 hour limit
5 hour limit

加入一些技巧

后面我并没有死磕图片预览这个问题,因为它在这个项目里暂时并不重要,也因为如果死磕解决不了,心态估计要爆炸,接着又开始做了一些新的功能,比如上传、下载、UI 调整等等。但是这次开始加入一些新的使用技巧:

  • 把需求用 plan mode 先让 CC 做分解,反复沟通并持久化文档
  • 添加了多个 agent:需求分析 Agent,UI 设计 Agent,重构设计 Agent
  • 添加了自定义的 command:让 CC 根据代码的改动提交 git 信息方便后续回滚
  • 添加了若干的 mcp:context7,sequential-thinking 等等
  • 在 Claude.md 中添加了一些规则:比如改完必须跑过所有用例、代码必须编译成功等等

上述这些小技巧的加入,CC 变得能干了很多,但是依旧容易在一些问题上反复打转,这个时候我发现如果我介入,或者让其他 Coding Agent 来 Review 代码,问题的解决速度会比 CC 自己处理要快得多,而且在代码写着写着我经常会看到它写着写着开始批判自己写得不够好,要重写,像极了自己写代码的样子(但是这样是不是也太消耗 token 了!)

最后,第一个简单可用的版本就诞生了

r2s3-cli
r2s3-cli

Spec-Driven Development

在这期间简单体验了一下 Kiro 的 Spec,我觉得还蛮有意思,三阶段的工作流程比较符合当下研发实际的情况:需求分析 -> 设计 -> 任务拆解。同时 Github 也发布了自己的 spec-kit,这种方式其实能让使用者更好地参与到需求研发的每一个环节,并形成规范文档,让 Agent 在指定的框架内干活,比它自己发散性地处理任务效率高得多。值得后面深入的去体验。

最后,我觉得 Demo 或者一些脚本,纯文字 Vibe 就行,而复杂的需求和 bug,还是需要加入更多的工具、规范和技巧,而一个具有编程经验的使用者能让这些工具发挥更大的优势。写下这句话自己都觉得惊讶,谁能想到 2025 年的今天,通过编写代码的方式来实现产品这种事情已经不再是程序员的专属了,但是”程序员将要被取代”这样的说法至少在今天还无法成立,不过或许这一天终将来临。


本文由人工撰写,由 Claude Code 帮助修改错别字和标点