不写一行代码,Trae 帮我实现一个 utools 插件

1,034 阅读6分钟

我正在参加Trae「超级体验官」创意实践征文,   本文所使用的 Trae 免费下载链接:  www.trae.ai/?utm_source…

背景

不知道你有没有和我一样的感受,有时候觉得什么都没干,一天就过去了。一直想找个软件来记录一下自己一天都干了啥,市面上用来记录日常的工具很多,但是或多或少都有些不能满足我的诉求:

  1. 唤醒不方便。 记录的时候不希望打断我现有的工作流,所以能用快捷键唤醒就显得尤为重要。且作为一个工具应该是随用随来,不用即走的状态。
  2. 数据不能导入导出。 如果用了一段时间发现要收费想换软件就很麻烦,说不定用了一段时间开发者跑路了,那之前的数据基本就全没了。
  3. 页面复杂,有广告。 这个就不多说了,大家都是要吃饭的,或多或少就会收费或者加一些广告上去,就算是无偿的也不会花精力一直去维护。

基于上述考虑,作为程序员的我一直想自己写一个自己用的工具,但是碍于开发成本,一直没来得及动手,一方面是需要自己设计 ui,这是我不擅长的,心里想的是能用都行,但也不能太丑,还是要有一些基本的设计。再者就是这个我也不确定最后自己做出来能是个什么样子,万一投入了一两周之后做出一个自己根本不会用的东西,那就是浪费时间。
要是有个人无偿的根据我的要求快速做出一个 MVP 版本的东西出来就好了。

从雷霆战机初识Trae

第一次知道Trae是看到有人分享用它写了个雷霆战机,觉得很酷炫。诶?这不就是我需要的"人"吗? 于是便找了个寂静的晚上,我就开始了我自己的开发之旅。 8f854d1343793377279e9793cae2fee1.JPG

在正式介绍工具开发之前还得介绍下 utools,它是我最常用的软件它之一,它本身自带很多非常好用的工具,比如 json 格式化,颜色选择,剪贴板管理等,而且都是免费的。最主要的是他可以在全局通过 opt+空格来唤醒,这满足了唤醒方便的关键的需求。而且他还提供插件的方式供开发者开发自己的插件,这个工具也理所当然的建立在 utools 的插件之上。

我常用的 utools 工具

image.pngimage.pngimage.png
json工具,可以通过js 语句过滤这个功能强推颜色选择工具剪贴板管理工具

开始开发

项目初始化与架构改造

在准备好开发环境之后,我给 trae 下达了第一行命令

这是一个 utools 插件的初始化工程,现在麻烦帮忙把这个工程改造一下:
1. 我要写的是一个类似于 todolist 的插件,请帮忙写个demo,并把原来多余的文件删了
2. 工程要支持 typescript.将项目中的 jsx都改造成 tsx.

可以看到他会先查看当前项目的文件结构,以确定需要删除和修改的文件。然后就真的把整个项目都变成了我需要的,原来不需要的 demo 文件也已经删干净了,原来是 vite+react+js 也变成了 vite+react+ts。

image.pngimage.png
改造前改造后

然后用 utool 来看看效果。额...不能说有点丑,只能说很丑,这就是我上面所说的 ui 问题,要设计一个顺眼的 ui 还是有一定难度的。

image.png

UI优化与体验升级

先让他帮忙优化一下看看

帮忙优化一下 todo 样式

image.png 哇,一下子顺眼多了,但是还没有适配深色模式,且功能有些简单,于是我尝试让他适配深色模式,且加上时间戳。

把每日待办变成当日的时间,比如 2025-02-09,适配一下深色模式,每个 todo下都加上创建的时间戳
image.pngimage.png
深色模式浅色模式
数据持久化与扩展

上面的 ui 完成的非常好。有种让人眼前一亮的感觉,于是我尝试给他加个更加复杂的需求,上面我还有个需求,就是数据能够持久化,且数据能够导入导出。

把数据进行持久化,
utools的持久化文档:https://www.u-tools.cn/docs/developer/api-reference/db/local-db.html, 且增加个历史记录查看的页面,能查看每天记录的todo,并且加上数据导入导出的功能,格式为json

好像报了个错,直接把错误复制给它,让它帮忙解决。 image.png

也能顺利的帮忙解决,核心功能都正常,虽然 ui 还是有些问题,根据上面的经验,待会直接让他修复就是了。值得一提的是 utools 的持久化 api并不是像 localStorage 一样是一个通用的 api,它靠着我给他的文档就能够实现持久化的功能。

image.pngimage.png
历史记录页面主页
代码修复与重构

到目前为止,还没有看过一行它生成的代码。一瞅,果不其然有个报错,用 AI 修复试试

image.png

image.png

image.png

也能够正确修复。

另外我发现 Todolist页面和 HistoryList页面都有一个 Todo接口,为了可维护性,这明显可以把它抽离出来

image.png Trae中输入#就可以选择文件目录或者代码段,这里选择 HistoryList.tsx TodoList.tsx 文件,并让它做接口抽离的工作。

image.png

image.png 效果:

image.png

剩下的也不想代码也不想一个个看了,让他自己先优化一波吧

image.pngimage.png
自动重构项目优化后的目录结构

目前这个插件已经上架到插件市场,如果和我有一样需求的朋友可以去下载使用,未来我也会加上 ai 总结或者番茄钟之类的功能。或者直接用 Trae 自己写一个也行。

image.png

感想

虽然 ai 爆发已经有两年了,但是 Trae 这种类型的工具首次让我感觉到生产力有着巨大的提升。如果说目前大部分 chat 类型的 ai 是一个只动嘴皮子的全能导师,那 Trae 就是那个能够能够真正的帮我干活的人。虽然现在还有一些小 bug,但是相信它会越来越好。