🔥 开局暴击:两个遥控器,让我多掏了4倍冤枉钱


先给大家看张图,猜猜今天我的Token费用是多少?

费用暴涨截图

¥272.56。

你没看错,就一天,就一个项目,一个屁都没干出来,272块没了。

而我全程用的还是"最便宜"的模型。

你问我在搞什么飞机?

说出来你可能不信:我被两个遥控器同时控制了。


📌 事情是这样的

本来我用得好好的GLM-5.1,便宜、稳定、响应快,单次请求才¥0.30左右。

结果有一天,它突然开始超时。我寻思着,换个模型试试呗?正好看到Claude Code里有个/model命令可以临时切换模型,于是顺手切到了Kimi-k2.6。

诶,还真行,不超时了。

那问题解决了,该切回来了吧?

我打开了cc-switch,熟练地切回了GLM-5.1,心想这波操作稳如老狗。

然后我就被自己的"稳"坑了272块。


💡 等等,cc-switch和Claude Code的/model是什么关系?

这里有个巨坑,我必须给你们掰开揉碎讲清楚:

cc-switch是个全局配置工具,它控制的是"新建会话"时用哪个模型。

**Claude Code的/model**是会话内的临时切换,只影响当前这个会话。

问题来了:我切回GLM的时候,只是用cc-switch改了全局配置,但已经打开的那个会话里,模型还是Kimi

这就相当于什么?你有两台空调遥控器——一台控制客厅,一台控制卧室。你去卧室想调温度,结果只按了客厅那个遥控器。你以为凉快了?no,你热得跟孙子似的,钱还照扣。


⚠️ 真实代价:Kimi是GLM的4倍贵!

模型价格对比

看这张图你就明白了:

  • Kimi-k2.6:约¥1.26/次
  • GLM-5.1:约¥0.30/次

差了整整4倍多

而我的使用记录里,Kimi占了5条,GLM只占了3条——这意味着我那272块里,大部分都喂给了Kimi。

就因为一个"以为"。

你以为切回来了,实际没有。
你以为省钱成功,实际钱包在哭。


💰 我的血泪教训

📌 记住这条铁律:用cc-switch切模型后,必须重新开会话;或者在Claude Code里用/model确认当前会话的模型。

两个工具,一个管全局,一个管当前会话,别傻傻分不清!


🛠️ 第二幕:Superpower级方案,然后呢?


话说回来,钱坑只是开胃菜。

真正的大菜在这里——我花了整整一个下午,做了一个Superpower级别的架构方案。

什么TDD测试驱动开发、什么单元测试+端到端测试、什么Git提交规范、什么模块化设计……

全都安排上了。

我甚至还制定了详细的开发计划,每天完成什么、每周交付什么,写得比毕业论文还详细。

然后呢?

41个测试全部通过。

看看这战绩:

测试全绿截图

  • API端点验证全✅
  • /health 200
  • /api/projects 200
  • /api/devices/scan 200
  • 41个测试,一个没挂

我看着这些绿点点,感动得差点落泪。

心想:这波稳了,这波真的稳了,测试全绿,产品必成!

然后我打开了浏览器,准备欣赏我的杰作——


😱 打开页面的瞬间,我以为我眼瞎了

前端惨状

就这???

就这???

就这???

一个简陋到极致的界面:

  • 藏蓝色的侧边栏(审美倒是没问题)
  • 白色主区域
  • 一个"Scan Devices"按钮
  • 一个空表格,写着"No data"

没了。

真没了。

这界面简陋到我以为自己在看1998年的网页。


❌ 然后我发现更离谱的事

API全红

打开DevTools看Network面板——

三个请求,全红:

  • /api/projects → 红
  • /api/devices → 红
  • /api/devices/scan → 红

点开看返回:

501 Unsupported method (POST)

Server那一栏赫然写着:

SimpleHTTP/0.6 Python/3.14.3


💡 等等,SimpleHTTP是什么鬼?

SimpleHTTP,是Python自带的一个最基础的HTTP服务器

它的特点是:只支持GET,不支持POST。

而我的前端呢?所有请求都是POST。

所以整个前端就是个摆设——点啥都报错,干啥都没用。


📊 测试全绿,产品报废:史上最讽刺的骗局

这就是整个故事最荒诞的地方:

测试测的是什么?mock掉了接口,只测代码逻辑。

E2E测试怎么跑的?绕过了代理配置,测的是本地环境。

结果呢?代码逻辑确实没问题,单元测试全过。但放到真实环境里,一个POST请求直接给你打回原形。

这就跟你去体检一样:

  • 抽血:正常 ✅
  • 尿检:正常 ✅
  • 心电图:正常 ✅

然后医生告诉你:体检报告很好,但你连路都走不了,回家养着吧。


⚠️ 核心问题:你在测"代码对不对",还是在测"产品能不能用"?

这两个完全不是一回事!

单元测试:验证函数逻辑,输入A输出B,mock掉一切外部依赖
集成测试:把多个模块串起来,验证接口对接
E2E测试:模拟真实用户操作,从头跑到尾

但我这三个都做了,为什么还翻车?

因为缺少两个最关键的东西:

  1. 契约测试:前端和后端约定好接口格式,双方各自验证自己的实现是否符合约定
  2. 真实环境冒烟测试:在真实的服务器、真实的网络环境、真实的用户操作下,跑一遍核心功能

💰 我的教训:测试覆盖率≠产品质量

📌 41个绿点点不代表你的产品能跑,它只代表你的代码逻辑没错。

产品能不能用,得真刀真枪地在真实环境里跑一遍才知道。


🎭 第三幕:这场闹剧的三大核心坑


复盘了整个过程,我发现问题的根源在于认知偏差——我以为我懂,其实我只懂了一半。


坑1️⃣:工具认知坑 —— “切换"不是"生效”

你以为的切换:cc-switch切GLM → 全局生效 → Kimi bye bye

实际的切换

  • cc-switch:改的是全局配置,影响新建会话
  • Claude Code /model:改的是当前会话,不影响其他

这就像你改完Wi-Fi密码,但手机还连着旧的——看着连上了,实际没网。


坑2️⃣:架构基础坑 —— 前后端分离,不是"我写前端你写后端"就完事了

我全程在Claude Code里用对话方式推进,以为"我说前端你说后端,咱们配合着来"就是前后端分离了。

错!

真正的前后端分离是:

  • 前后端约定好接口文档(字段名、请求方式、返回值格式)
  • 前端按文档开发,后端按文档实现
  • 两边独立测试,最后联调验证

而我呢?前端后端都是Claude Code生成的,没有接口文档,没有契约约定,甚至没有意识到SimpleHTTP不支持POST这回事。


坑3️⃣:测试设计坑 —— “测了"≠"测对了”

我测了什么

  • 单元测试:mock掉接口,测函数逻辑 ✅
  • E2E测试:绕过代理,测本地环境 ✅

我没测什么

  • 后端服务是否支持前端需要的请求方法
  • 真实网络环境下API能否正常通信
  • 前端页面在真实环境里能不能展示数据

结果:测试报告漂亮得像选了美,实际产品丑陋得像车祸现场。


📋 避坑指南:我用272块买来的血泪经验


✅ 第一条:工具切换后,一定要验证生效范围

用cc-switch切模型:

  1. 切完之后,重新开一个会话
  2. 在新会话里用/model确认当前模型
  3. 或者直接在cc-switch里查看当前生效的模型

不要相信"你以为",要看"实际上"。


✅ 第二条:前后端分离,从接口契约开始

在做任何开发之前,先做这两件事:

  1. 定义接口文档:用Swagger、Postman或者简单的Markdown,明确接口的URL、请求方法、请求参数、返回值格式
  2. 契约测试:前后端各自按文档实现,然后用一个共同遵守的契约去验证——这时候用Postman或者Apifox这种工具最合适

先说好规则,再动手干活。


✅ 第三条:测试要覆盖"真实可用性",不只是"代码正确性"

你的测试矩阵应该包含:

测试类型 覆盖内容 目标
单元测试 函数逻辑、边界条件 代码是对的
集成测试 模块间接口对接 模块能串起来
冒烟测试 真实环境的核心功能 产品真的能用
契约测试 前后端接口一致性 前后端真的能对话

最后那个冒烟测试,是多少程序员死都想不到要做的。


✅ 第四条:花钱之前,先看清楚账单

这是我今天最贵的教训。

每天至少看一次费用明细,关注:

  • 用了哪个模型
  • 单价是多少
  • 请求次数是多少

别等月底账单来了才哭。


🎬 结尾:给所有AI编程玩家的忠告


写这篇文章的时候,我的心情很复杂。

一方面,我确实花了272块买了个寂寞,丢人。

另一方面,我也意识到:AI编程工具真的很强,但也很容易让人产生"我很强"的幻觉。

测试全绿 → 我很棒 ✅
代码跑通 → 产品成了 ✅
前端打开 → 哦豁 ❌


🔥 三个问题,让你避免重蹈覆辙

在开始任何一个AI编程项目之前,先问自己三个问题:

1️⃣ 你真的理解你用的工具吗?

  • cc-switch和Claude Code的/model有什么区别?
  • 你的代码跑在什么环境里?
  • 你的模型真的切换成功了吗?

2️⃣ 你的前后端真的能对话吗?

  • 接口文档在哪里?
  • 谁负责定义契约?
  • 真实环境下联调过吗?

3️⃣ 你的测试真的测对了吗?

  • 测的是"代码对"还是"产品能用"?
  • 有没有真实环境的冒烟测试?
  • 有没有契约测试?

💬 互动时间

最后,我想听听你们的故事:

你有没有被AI编程工具坑过?

  • 切错模型,花了冤枉钱?
  • 测试全绿,产品全红?
  • 还是什么别的离谱翻车?

在评论区留言,聊聊你的经历。

我会在评论区抽3个小伙伴,送出我的"避坑指南完整版checklist",包含:

  • ✅ 工具切换检查清单
  • ✅ 前后端分离开发流程
  • ✅ 真实环境测试checklist

📌 最后

这篇文章的价值,可能还不值272块。

但如果能让你少踩一个坑,那这钱就算花得值了。

毕竟,别人的教训,才是最便宜的学费。


关注我,我们下期再见。

往期推荐:

  • 《我用AI写代码,一周搞定了一个App》
  • 《Claude Code vs Copilot:谁是真正的编程之王?》
  • 《程序员的钱包保卫战:如何优雅地薅AI羊毛》

配图来源:本文配图由AI生成,截图来源用户提供

如需转载,请联系作者授权

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐