夜雨聆风学习资料网

ARTICLE · 1042383

使用 Trae AI 开发,这 7 条经验帮你少踩一半的坑

使用 Trae AI 开发,这 7 条经验帮你少踩一半的坑

使用 Trae AI 开发,这 7 条经验帮你少踩一半的坑 🛠️

用了大半年,踩坑无数。今天把这 7 条血泪经验全盘托出。


📖 先说背景

最近的主力 AI 编程工具是 Trae

选它的理由很简单——我在用火山引擎的大模型。

实际工作中,代码开发的大头已经交给了 AI。但它写出来的代码毛病也很明显:前后逻辑不连贯,能用归能用,质量属实一般。所以开发者的角色变了——不再是逐行敲代码,而是把控方向、随时纠偏

下面这 7 条经验,都是我一行一行代码踩出来的。


一、🔁 把重复踩的坑,打包成 Skill

先看一张使用截图:

用了一段时间后,我发现一个让人很头疼的现象:

大模型对基础问题特别容易"失忆"。

你提醒过它一百遍的事情,它照样忘给你看。在我的项目里,最典型的就是后端模块的启动——IDEA 里点一下就能搞定,到了 AI 纯命令行那儿,启动 10 次挂 8 次。

怎么办?把经验写成 Skill。

我单独开了个目录,把这些反复出现的问题总结成一条条 Skill。每次开新任务,先让 AI 自动去读一遍。说实话,就算这样也不能保证 100% 不出错,但相比之前,出错率下降了不止一个数量级。

想想看:要是 AI 每天都在重启模块、数据库连接、代码规范、Git 提交这些鸡毛蒜皮的事上反复犯错,整体效率得拉低多少?

再举一个具体的例子——数据库查询。

AI 总习惯去翻本地 yaml 文件找数据库连接信息。但实际情况是,真正的配置全在服务器上的 Nacos 里。它在错误的方向上翻了无数次之后,我让它自己总结了一版 Skill:

💡 配一个 MCP 也能解决,但整合成 Skill 更直接——生成一个 Skill,只需要一句话。

而且 Skill 支持全局添加,也可以按模块拆分管理,非常灵活。


二、🔐 Git 是你的后悔药

这句话我放在前面说,而且加粗说:

⚠️ 无论如何,一定要提交 Git。

尤其是当 AI 搞不定某个功能,代码已经被它改得面目全非的时候——Git 是你唯一的退路。

AI 写的代码,有时候是真的优雅,干净得让你想鼓掌。

但也有的时候,写得跟……算了,不形容了。

所以,人工至少扫一眼。我每次提交后都会过一遍 diff。

因为你永远猜不到 AI 会写出什么神奇的东西。有些写法的清奇程度,让我都忍不住感慨:"又学到了,原来代码还能这么写。"

以下是我的 Git 提交流程 Skill:


三、📝 提示越清晰,AI 越听话

这条算不上新鲜,但执行起来很多人会偷懒。

我的经验就一句话:

永远不要指望 AI 完全理解你。

我在工作区里建了一个 xx-doc 目录。拿到原始需求后,第一件事不是让 AI 直接写代码,而是先让它生成一份设计文档

后面需求有调整、有新增,AI 会自己同步更新文档。等开发跑偏的时候,让它重新读一遍文档,就能火速拉回正轨。

需求稍微复杂一点的,我还会亲自看一眼它写的设计文档,确认方向没偏。这一步花不了几分钟,但能省掉后面几个小时甚至几天的返工。


四、🧠 模型也要"因材施教"

不同模型,擅长的事不一样。

有的天生适合推理,有的码代码一把好手。

我现在养成的习惯是:接到需求的时候,先大致估一下难度。

  • 日常的 CRUD → auto 模式,够用了
  • 复杂逻辑、核心链路 → 切高性能模型

就这么简单。

只能说,贵的模型确实有贵的理由。在真正吃算力的场景下,差异是很明显的。


五、🪝 Hooks:好用,但 AI 配置起来是真费劲

Trae 的 Hooks 和 Claude 的功能完全一致,甚至能直接导入 Claude 的 Hooks 配置。

我的需求很明确:后端代码提交和推送时,自动执行一次代码格式化。

听起来简单对吧?我让 AI 自己来配。

然后就开始了一场拉锯战——确认是不是用 google-java-formatter、加白名单、排查路径依赖……

中间最崩溃的是,AI 会突然来一句:"等等,我好像理解错了。"

😫 那一刻,头皮发麻。

问题在于:AI 的实现思路,跟你想的经常是两条完全不交叉的路。

但结果是好的——

折腾了大半天,功能搞成了。


六、🧹 代码质量,还是要靠你定规矩

AI 代码的质量方差很大。

有时候写得很漂亮,有时候就很敷衍。我后来琢磨了一下——可能是老代码里过时的写法太多,AI 参考了老代码,所以也跟着写出了一些"上古风格"的实现。

举个例子 🌰:

获取当日日期,我习惯用 Hutool 的 LocalDate API。AI 给我整的是 SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat(format);
Date dt = sdf.parse(dateStr);

说实话,这个规范我已经写成 Skill 了——

但执行效果只能说一般,我也不确定是不是我用的方式有问题。

还有一个常见毛病:AI 写常量喜欢到处散落,而不是收拢到一个常量类里。

所以我的阶段性结论是:

🎯 让 AI 写代码之前,先给它一组约束。 明确开发规范、指定优先使用的工具类。

这块我还在持续摸索,有心得再分享。


七、🌀 当 AI 开始"绕圈"

AI 有一个特别"敬业"的习惯:

不管能不能解决问题,它一定会给你一个回应。

有时候它是真的理解了。但更多时候,是你给的资料让它误以为"破局的方向就在前面"——于是,AI 变成了一头倔驴。

用了几个月,我观察到:当权限完全放开之后,AI 很容易陷入逻辑死循环。

说一个我亲身经历的场景——

有一次,我让它排查一个问题。

等了 30 分钟,还没动静。我打开它的思考过程一看,绷不住了:

排查 → 确定方向 A
     → 自我怀疑,排除 A
     → 重新推理
     → 再次确定方向 A
     → 继续怀疑 A
     → 排查 → 确定方向 A → ……

如此反复,循环了好几遍。

🌀 原地转圈,乐此不疲。

这时候,只能人工打断。要么等它超时,要么等 5 小时的使用频率限制把它拦下来——但哪个都够呛。


✨ 写在最后

现阶段,人机协同还是王道。

AI 确实已经扛起了大部分代码工作,这一点毋庸置疑。

但方向盘,还是得攥在人手里。

方向人把,细节 AI 干——这就是目前最实在的合作姿势。


以上,是我这几个月用 Trae 做实际开发的真实经验。如果你也在用 AI 写代码,希望这 7 条能让你少走点弯路。


相关学习资料