我正在参加Trae「超级体验官」创意实践征文,本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source…
ps: 页面已经部署到 Github Page 上了,可以自由查看自己的得分了~,友情链接
引言
最近买了个 mac mini,苦于只有 USB 接口的键盘,还缺少蓝牙键盘,夜半三分,来掘金寻欢作乐,蓦然回首,发现 Trae 征文活动的奖励就有 Cherry 无线键盘!但是获奖名额只有 10 名🤯
思前想后,好歹我高中作为也是拿过 35 高分的语文才子,又怎不能拿下?但是文章编写时间已经来到了 2025/03/01,距离活动结束时间只剩 2 天,时间颇为紧张,风险极大,因此我需要编写一个大盘,来预测我究竟要投入多少能够拿下 Cherry 键盘!
大盘 - 从活动数据中挖掘信息
作为一个从 GPT -> github copiot -> cursor 的小伙,我知道单纯靠 Chat 很难在短时间运行起来项目,因此我下载完 Trae 后首先瞄准了对比 cursor 的 composer 功能的 Builder,之前有了解过 composer,对于代码文件的修改/生成,模型的自主权更高,因此对于短时间内服务的搭建和运行有比较好的提效,因此我对于生成大盘项目的入口选择了 Builder
PS: Trae 使用的系统为 MacOS,聊天模型前半部分使用 claude 3.7 后半部分使用的 claude 3.5
什么是大盘
去 B 站找个可视化视频看看就完了,就是把数据变得更易懂,而我要编写的大盘就是抄的 grafana,grafana 是一个监控类大盘平台,观测实时数据变化的趋势,比如请求 QPS、当前多少报错等等
对于 Trae 征文活动来说,我的项目描述如下
Trae Builder - 加速构建大盘
项目搭建
Trae 在 claude 3.7 的加持下很快就完成了项目的搭建,而且 Builder 模式竟然还会提示你去终端执行命令的命令,这点很棒
点击完成预览后,很快啊,屏幕出现了经典的 vite 报错
PS:当时的图片忘记截了,原因不同上,只是报错的 UI 类似,具体原因下面会展开
这是因为 trae 生成完成之后的入口文件没有设置,略有经验的我看了出来并打算给予了一定的 prompt,但 trae 却自己发现错误,并能够自我纠正,真的像一个人工智能,自我修正👍
Trae 似乎通过预览后的图片获取到了报错信息,并进行自我纠错
但是它自我修正的方向太不正确,正确的做法应该是把 .js 的后缀改成 .jsx,但是 trae 的方向是考虑去兼容 .js 里的 .jsx 语法,不过后面它自己又纠正了错误,很有意思
在我有点前端基础的前提下,一些繁琐的项目搭建过程很快就完成了,放到以前我可能会去查下 React 和 Vite 的文档,因为太久没用了😂,但是 Trae 对于描述清晰的需求下,可以很快的给你展示出和产品对标的样式
前提是你的产品需求没有变
小问题切换到 Chat - 不要打扰 Builder
前文提到,项目搭建过程中有些经典的报错,为了避免影响 Builder 内的上下文,我试用了 chat,问了查看 npm 全局包的命令,交互做的不错,用 cursor 总是找不到添加直接运行 shell 的入口,总是要复制粘贴自己手动运行,Trae 的交互体验还是不错的
迭代
完成基本的 UI 样式后,我开始去准备数据,数据相关的代码和逻辑涉及敏感信息,不在本文中列出,总之我在 Trae 的活动专栏里获取到了观测的信息,比如
- 文章数
- 点赞数
- 收藏数
- 阅读量
我把它命名为 database.json,里面只有一个 articles 的表,从这开始我的数据结构开始变化,Trae 你需要准备好迭代了,但是问题接着就来了
读取范围太大
Trae 没有经过我的允许就读取了 database.json 文件,感觉有点不太好,因为 database.json 属于私密文件,可能不应该上传到云服务中去解析,而是应该读取我预先设定的类型文件 index.d.ts
在我后期用 md 文档强调的情况下,trae 仍然读取了 database.json 进行代码生成,感觉有点不太好,但是我也不知道怎么解决,只能说 trae 是一个很好的工具,但是它的问题还是很多的,需要我自己去解决
超时/排队
在 Trae 征文活动赛季末,我得以用上了 claude 3.7,但它有点卡
老是会有以下提示
请求过多,队列位置 xxx 请求超时,请稍后重试
不过比 DeepSeek 的无尽等待和没有排队的提示要好很多😂,如果有个文档讲下哪个模型的容易阻塞会好一点~
而且出现需要重试(即超时)的 case 时,没有提供重试的 UI,当我发送“继续生成”的 prompt 时,似乎又重新读取,没有接上之前回答了一半的内容,对于 token 比较多的 propmt 来说耗时太久且得不偿失,因此使用 Trae 的 Builder 功能时切记不要老是假大空的提一堆需求,而是大问题转化为小问题,一个个问,达到有规律的上下文
缺少默认选项和 Diff
还有一个体验不太好的地方就是一直在频繁说文件需要审查,我一度以为必须点击确认以后才能够生成代码,而且多次的弹出并没有类似 VS Code 那种以后对于该选项都默认接受的选项
不过很快我就适应了,我开始摸鱼,我总是等待 Trae 给我生成完成并且点击全部接受后再去运行查看效果,发现不对劲的地方我回去看 Trae 帮我修改了哪些部分,结果发现,点击后,Trae 只是一味的跳转,而不是给我展示修改前后的 diff
预期的 diff 如下
PS: 如果有一定的缓存能够找到被 Trae 修改前的原文件,我或许还能回到之前运行正常的版本~😭
执着的 Trae
就像上文提到的一样,即使我很明确的说了不要读取 database.json,Trae 仍然还是读取了
而当我的数据结构成为真实的表结构的时候,脱离了 trae 自身的预设,debug 就开始了,它尝试去转数据为自己预设的数据,而不是我新定义的数据
项目收工
效果如下
通过 SQL 配合大盘,实时动态的去查找数据,整体的布局没有脱离 Trae 一开始的预设布局
读懂你想要的
在我去观测我是否有机会参与阳光普照奖的时候,我忘记了 MySQL 的一些 feature,我开始询问
场景上下文:有用户发表了多篇参与 Trae 活动的文章,我需要去重,只保留最新的行
我只是跟 Trae 说该如何展示其它列,但它就像我肚子里的蛔虫,猜中了我的小心思(即去重)
通过数据可知,在阳光普照奖里最后一位发布者是 02/28 号发布的文章,序号已经排到了 127,我已经无缘掘金 yoyo 抱枕😭
按照标准提交的前100名均可获得阳光普照奖与其他奖项不叠加
免费算法工程师
我不是算法工程师,也不是搜广推部门的,因此对于 rank 机制我就像个无助的小孩🧒,但是 Trae 在生成代码的过程中给我提供了 rank 的设计,如下
按综合分数排序(点赞 * 0.6 + 评论 * 0.3 + 收藏 * 0.1)
一开始我就让它瞎生成,后面按照下面的指标去判断其它奖项的候选人时,发现还是能对上的
- 阅读量 -> Trae 独步天下奖
- 阅读时长 -> Trae 使用成就奖
其中德育处主任的有了Trae,人人都是程序员的时代来了一骑绝尘,可谓是才高八斗
然后通过阅读量和 rank 机制大概可知我可能可以获得一个行李箱
有一定几率可以获得
我的对手分别如下
- 阅读时长观测角度:Trae初体验之生成小游戏 - 一只辣条
rank机制:Trae 高性价比辅助工具 - 小雄Ya
点赞数、评论数、收藏量、阅读量四个指标不是很高,难道是 Trae 征文活动的流量没有给的太高?
奇思妙想
生成代码的过程中提了一嘴热力图,Trae 给我生成了热力图的观测角度
渲染出来的结果挺像一回事儿(装一装京✌️)
通过分析离群的点并结合文章内容可以对评分有更深入的了解
总结
Trae在Builder方面做的可以,如果小白或者初创想要了解一个Demo,使用Trae去完成项目搭建会省事很多,但是在项目迭代方面Builder能做的事不多,代码提示类似copilot,不能做到类似cursor类似的批量更新Trae这个编辑器的UI样式让我感觉像是VS Code + IDEA的混合体,整体更偏向于IDEA(但似乎是基于VS Code开发的,只能说字节✌️真有钱),终端直接运行通过模型生成的命令,还可以预览并通过图片(猜的)获取报错信息自我纠正,cursor和copilot应该是没有类似的功能,对于纠错这一步更多还是通过开发者手动完成(发现错误 -> 发送cursor->cursor回答),自我纠正的功能像是真正的人工智能👍