gpui-component + AI 主写:用和上一个项目完全相反的方式做了个 macOS 菜单栏监控 zstats

6 小时 13 分钟前
 treexie

之前用 GPUI ( Zed 编辑器那套 GPU 加速 UI 框架)写过一个 Redis 客户端 Zedis。那时候刚接触 gpui-component,生态资料少,基本是大部分代码手写、AI 打辅助的模式——AI 负责查资料、补样板代码,主体逻辑还是自己一行行敲。

这次做新项目 zstats.app,两个变化叠在一起,开发体验完全不一样了:

一是 gpui-component 成熟了很多。 各种常用组件都是开箱即用,不用再自己从头设计和实现 UI 细节,官方提供了完整的 skill 以及各种示例更方便使用。

二是我把人和 AI 的分工整个反过来了。 开工之前先做了两件准备:让 AI 学习了一遍 gpui-component ;再自己定义了一套编码规则,约束它的写法和边界。之后我只做架构设计和编程规划——写清楚模块划分、数据流、每个功能的设计文档,代码由 AI 主写,我负责 review 和关键位置的修正。有了 Zedis 积累的 GPUI 经验,这个模式才跑得通:你得知道什么是对的,才能判断 AI 写得对不对。规划写得越细、规则定得越清楚,返工越少。人的角色从「写代码」变成「定规格 + 把关」。

产品本身是个 macOS 菜单栏系统监控,核心思路是「每个程序可以有自己的告警线」——浏览器允许吃 200% CPU ,但某个后台守护进程超 30% 就该吱声。另外有进程树聚合(浏览器 37 个 helper 合并算账)、慢性占用检测(长期 25% 但从不越线的进程也会被点名)、基于 Spotlight 索引的大文件秒查和可再生缓存清理。清理只走废纸篓、退出进程只发 ⌘Q 级别的请求,不搞 rm -rf 和 SIGKILL 。

Rust + GPUI 原生实现,Apache-2.0 开源,签名公证过的通用二进制。

398 次点击
所在节点    程序员
2 条回复
dreamk
5 小时 39 分钟前
怎么只有 macOS ,gpul 我记得不是跨平台的吗,既然如此为什么不用 swift 这种原生语言来实现呢
lieyan
3 小时 40 分钟前
最近也在用 gpui 做小玩具,学习一下楼主的编码思路

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1238253

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX