来源:互联网 更新时间:2026-07-23 07:24
Vibe Coding 的“恶果”终于来了。
最近在升级 JClaude 的时候,发现 token 消耗得特别猛。然后一查代码,好家伙,有个文件都快一万行了。粗略一算,光这一个文件,上下文就有十几万 token 了。
虽然程序跑起来完全正常,但技术债越堆越厚,不改不行了。正好最近在测试 Kimi K3,干脆把这个任务丢给它了。这个测试,可比做个动画效果有实际意义多了。
下面就来看看,它到底是怎么重构的,结果又怎么样。
先简单介绍一下这个项目的情况:
之前做了一个 Claude Code 中文界面版,完全克隆了 Claude 桌面版的界面,然后调用 Claude Code 终端,自动接入第三方模型。也就是说,第三方模型可以直接用 Anthropic 家最强编程智能体,不受账号限制。当然,如果你接入了 Opus 4.8,那这个软件的能力基本就等同于 Anthropic 官方的 Claude 桌面版了。
最近加了一些角色和技能相关的功能,结果发现项目文件已经膨胀到让人没法忍了。
这项目一开始就是个简单的界面克隆测试,所以当时根本没在意代码结构。后来改来改去,也没强制要求重构,AI 就这么一路堆“屎山”堆过来了。估计很多 Vibe Coding 项目都会面临同样的问题——刚开始就是试试水,玩嗨了就越改越大。
项目是用 Tauri + Rust 做的,安装包很小,内存开销也低,能打出多平台的发行包。界面部分主要是 JS、CSS、HTML 这些前端代码,效果可以做得很好;后端是 Rust,跟系统交互效率很高。开发还支持热更新,效率确实不错。
要重构,先得摸清代码的底细。对话就这么开始了:
然后得到了这样一个结果:
从这里能看到,main.js 已经 9338 行了,快一万行了,里面塞了 400 个函数!
接下来就是具体看看里面有什么了。
它本身是个纯 script,没有 import,也没有模块化,全靠 30 个 // ==== 注释来分段。最大的几段:
说实话,模块划分还是挺清晰的,但文件确实太大了。
基本情况摸清了,那到底有没有必要优化呢?K3 的结论是:有必要,但得看接下来的开发节奏,而且不建议一次性大改。
支持拆分的理由很明确:
它提到一个关键点,就是多人协作时冲突是个大问题。不过对我来说还好,毕竟我是多 AI 合作,一把梭。
需要权衡的点:
建议的优先级:如果近期要持续加功能(尤其是 CLI bridge、Skills 相关),就按 "i18n → CLI bridge → 各 workspace 面板" 的顺序增量抽取,每抽一块跑一遍现有测试;如果只是维护期、改动少,可以先不动,只把 i18n 数据分离出去。
从目前的情况看,除了大,没有太严重的问题。但比较让人担忧的,是大文件下 AI 读写和 token 消耗的问题。所以第二轮需求直接抛给了它:
下面是 K3 的分析结果。
main.js 的问题不只是“长”,而是无模块化的那种长——400 个函数全都在全局作用域里,靠一个全局 state 对象和 DOM id 隐式耦合。你没法只改“设置”而不碰“对话”,因为它们共享同一片命名空间。这直接导致可测试性差——那 3 个针对性测试,很大程度上是这个结构的结果,不是原因。函数无法单独 import,就没法单测。lib.rs 同样 4148 行单文件,但 Rust 有模块系统和编译器兜底,拆分安全且容易,风险远低于 main.js。styles.css 4836 行在 CSS 里不算异常,危害最低,可放最后。
单看代码设计,有必要拆,但属于“慢性病”,不致命。
这是大文件代价最直观的地方:
拆成模块后,每个文件能被 AI 一次整读,心智模型完整,改动质量明显上升。
按中英文混合代码大约 3.5 字节/token 来估算:
这确实是个大问题,太浪费了。改完能省 80%,这个诱惑可不小。
单看代码设计,拆分是“应该做但不紧急”;叠加 AI 读写和 token 成本后,必要性明显升级——毕竟主要就是用 AI 辅助开发,大文件的税是每次任务都在交的。
结论不变:增量拆分,顺序 i18n → CLI bridge → 各面板。
其实心里早就有数了,因为之前已经让 Opus 4.8 拆过一次了。这次很明显也是按拆分的方向走的。为了谨慎起见,也为了更好引导 K3 完成任务,又问了第三个问题:
对齐现有分段,分层 + 自下而上。加载方式从 <script src="./main.js"> 改为 <script type="module" src="./main.js">。然后按现有 // ==== 分段抽取,分层依赖:
一个分段一个模块,200–800 行/单文件:
虽然只是拆一个文件,其实难度不小。因为不同模块之间是有耦合的,之前让 Opus 分析过,有些模块间的耦合度高达几十个。一个拆完之后,文件行数和文件数量都会变化,所以模型必须重新学习新的结构,再进行后续的解耦。
这一点很关键:
从它的回答看,应该理解得比较透彻了。经过三轮引导,它已经掌握了关键信息。所以,最后一句话就是:开干!
下图是它自己做的 todo 任务列表:
改完之后,它又问了两个问题:
第一个是用 git 管理版本,方便回退。第二个是冒烟测试怎么做。这个还是很稳的!
但对它的测试选项不太满意,怎么可以把手动启动 dev 放在推荐位呢?必须你来启动,我来看着啊!
另外说个细节,可以作为对比参考。Opus 4.8 改的时候,虽然改得很细,但很自信地说它会自己做 dev 测试,完全做了个甩手掌柜。
由于第一轮独立性比较强,整体修改非常快。测试了一下,没有太大问题。唯一的问题是没法调用 Claude Code!
不确定它为什么把内置 CC 跳过了,正常没有理由弹这个的。把情况给它说了一下,它成功解决了问题。那就没啥大问题了,继续推进!
随着修改的深入,逐渐变得复杂起来了。改到中间环节的时候,验证点逐渐变多了,修改的时间也越来越久了。
整个重构过程大概消耗了小半天时间。最后把这个 main.js 从 9938 行压缩到了 263 行,减少 97%。
全部改成模块化设计,拆成了 24 个模块,每个 33-2177 行。
总共提交了 13 个 commit,每步可单独回退。基础语法检查和其他校验它已经做好,人工检查了各项功能,全部正常运转。
这次重构非常成功,而且毫无波澜!
重构是要点脑子的,而且是一个非常严谨的问题,容不得半点错误。K3 能改完,没有错误,这一点还是略微出乎意料。2.8T 的参数,果然是稳了很多!
这一次测试结果还比较理想的。下一篇将要让它修改桌面软件的疑难 Bug 了,敬请期待!
七麦数据官网网页地址 七麦数据官方入口在线首页
问卷星官方网站入口地址 问卷星网页版在线使用
币安Binance官方中文网站 币安App最新版下载及新手注册指南
闲鱼的严选验货在哪里看?闲鱼严选和验货宝哪个可靠
PokePay加密卡2026完整指南:申请开卡全攻略+多场景应用技巧
摩托车活塞环性能如何
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
豆包AI专业版使用教程【新手必看】
索尼限时赠送PS Plus Premium七日会员,需手
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
迷你网名古风男生霸气(精选100个)
文雅简易网名男生可爱(精选100个)
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
币圈十大实用工具:从实时行情监控到数据分析、资产管理
王者荣耀「西行封妖记」【孙权-仙扇使者】6月25日上线!
闲鱼严选和验货宝哪个可靠?闲鱼的验货宝怎么样,,
币安杀入美股市场,重头戏bStocks还没来
精准天气预报APP推荐:支持分钟级降雨预测与实时分享功能
陈姓和杨姓网名大全男生(精选100个)
网名开头英文名字男生(精选100个)
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc