项目发版以后,我重新看了一遍这次 AI 重构(四)

18 阅读5分钟

发布之后,复盘这次“不手写代码”的氛围编程(Vibe Coding)实验

ig_013023b17c55aaea016a3a3fd2b7a88190bf3ae46c92084913.png

折腾完架构迁移、产品细节、Windows 权限和 Codex CLI 适配之后,Codex LED Widget 终于发到了 v0.2.0

这不是一个多大的版本号。它只是一个 Windows 桌面小组件:贴在桌面边缘,显示 Codex 的 5 小时和 7 天额度。但对我来说,这个版本更像一次实验的结项报告。

我尽量不手写代码,只负责提需求、定边界、审结果。AI 负责实现大部分内容。

现在项目发版了,可以回头算账了:它到底做成了什么?AI 真正省掉了哪些工作?哪些地方,最后还是得人盯着?

最终战果:Tauri 2 + Vue 3 + Rust 稳定落地

v0.2.0 最重要的结果,是项目从旧实现迁到了新架构:

  • Tauri 2
  • Vue 3
  • TypeScript
  • Rust
  • Vite
  • pnpm

交付物也补齐了:

  • Windows x64 安装包
  • README 使用说明
  • 项目截图
  • GitHub Releases 下载链接
  • 中英文介绍
  • 本地开发与构建说明

功能上,它已经是一个可用的桌面状态灯:

  • 读取本机 Codex CLI 额度
  • 展示 5 小时 / 7 天额度窗口
  • 用液态球显示剩余百分比
  • 低额度时变色提醒
  • 支持置顶、隐藏、系统托盘恢复
  • 支持手动刷新和自动刷新
  • 支持中英文切换
  • 兼容 Microsoft Store 版 Codex CLI

更关键的是,架构边界稳定下来了。

Rust 负责系统能力、窗口、托盘、CLI 调用和协议清洗。Vue 负责状态、交互和 UI。Tauri Command/Event 负责前后端通信。没有本地 HTTP 服务,没有数据库,也没有把 Codex CLI 原始响应丢给前端。

这个小工具终于更像一个桌面小组件,而不是“网页套壳再背一堆历史包袱”。

功劳簿:AI 做得好的地方

这次实验里,AI 的效率确实明显。尤其是边界清楚以后,它很适合处理那些重复、琐碎、但又不能完全忽略的工作。

场景AI 表现我的判断
旧框架剥离适合迁移里的机械劳动
Tauri 2 初始化能搭出基本骨架
Vue 3 组件UI 组件和状态拆分效率高
Rust Command/Event可用需要人审错误处理和边界
README很稳适合整理面向用户的说明
Release 文案很稳适合收尾和归纳变更点

最省时间的是迁移和整理。

Electron 旧语境剥离、Tauri 结构搭建、目录收敛,这些事情不一定难,但很耗耐心。AI 做起来很快,人只要盯住方向,不让它顺手扩张。

文档也很适合交给 AI 起草。像 productContextsystemPatternstechContext 这类上下文文档,AI 能把散落在代码里的逻辑整理出来。它不替你做判断,但能把你已经定下来的判断写清楚。

胶水代码也是它的强项。Vue composable、Tauri command、Rust 模块调用、事件监听,只要输入和边界明确,它基本能快速补齐。

最后还有宣发材料。README、截图说明、下载链接、Release Notes,这些活以前很容易拖到最后。AI 在这类事情上确实省心。

错题本:AI 还是不稳的地方

顺风局好看,逆风局才看底子。

这次项目里,AI 暴露的问题也很明显。

问题AI 的短板人要做什么
Codex CLI 协议变化容易只适配当前样本把协议隔离在 Rust 层
Windows 实机行为没法真实感知环境手工验证权限、托盘、窗口
Code Signing只能解释流程人处理证书和签名链路
自动化测试容易先堆功能补质量门禁
复杂 CSS容易覆盖式修补做样式收敛和视觉回归

最典型的是 Codex CLI 协议。

AI 可以根据当前响应写解析逻辑,但它不会天然替你考虑上游以后怎么变。如果前端直接依赖原始响应,一旦 CLI 改结构,整个界面就会跟着炸。所以我坚持把协议适配关在 Rust 后端,只给前端 QuotaSnapshot

Windows 实机行为也是盲区。AI 可以写 window.hide()tray menuset_always_on_top(),但它不知道某台机器上的权限弹窗会不会冒出来,也不知道系统缩放会不会把液态球挤变形。桌面软件必须真机跑,不能只看代码像不像对。

Code Signing 更现实。Windows 安装包没有签名,第一次运行会出现“未知发布者”。AI 可以告诉你怎么配置、有哪些风险,但证书购买、身份验证、签名链路,还是人自己处理。

测试和 CSS 也一样。AI 很会加功能,但不会天然替你守住质量。CSS 尤其容易变成哪里不对补哪里,短期有效,长期就是另一种屎山。

ig_013023b17c55aaea016a3a403b0684819085e3fea8f5479e5b.png

后续路线:从 Vibe Coding 到工程化

v0.2.0 是可用版本,不是终点。

后面要补的是工程化防线:

方向计划
质量防线补前端单元测试或最小集成验证
自动交付建 GitHub Actions 流水线
UI 稳定性引入 Visual Regression
安全可信处理 Windows Code Signing
协议适配增强 Codex CLI 响应变化时的错误兜底
样式治理收敛历史 CSS 覆盖

image.png

这也是我对“不手写代码”的最终看法:

不手写代码,不等于不做工程。

只是工作重心变了。以前是亲手写每一行实现,现在是定义边界、审查结果、建立质量门禁。AI 可以当执行者,但不能当技术负责人。它不会主动替你承担安全、隐私、兼容性和长期维护成本。

这次实验没有证明“人以后不用写代码”。它只是让我更确定,未来的开发者会更像一个小型工程团队的负责人:拆任务、定约束、验产物、补护栏。

Agentic 工作流真正有价值的地方,不是让人消失,而是让一个人能调度更多能力。

但方向盘还得握住。AI 可以跑得很快,你得知道什么时候让它跑,什么时候让它停。

项目地址:github.com/Wolfares526…

screenshot-poster.png