欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

写在前面

说起来,我接触AI编程工具也有一段时间了。从最早的GitHub Copilot,到后来的Cursor、Windsurf,每次有新工具出来都会去试试看。这不,前几天在技术社区刷到了一个叫trae的新工具,评论区好多人在讨论,说是对中文支持特别好,而且还有专门的国内版本。

我是那种看到新鲜玩意儿就想试试的性格,所以当天晚上就去官网看了看。官网的介绍挺吸引人的,说是"专为中国开发者打造的AI编程助手",支持多种主流AI模型,能帮你快速生成代码、重构项目、解决bug等等。看着挺厉害的,但我想着,工具好不好用还是得自己上手试试才知道。

下载安装:国内版还是国外版?

两个版本的选择

打开trae的官网之后,我发现它提供了两个不同的版本:一个是国内版,一个是国外AI版。这倒是挺有意思的,一般的工具都是只有一个版本,顶多分个社区版和专业版。

国内版的下载页面是这样的:

国内版下载页面

页面设计得挺简洁的,一眼就能找到下载按钮。我注意到国内版的介绍里特别强调了"无需科学上网"、"支持国产大模型"这几个关键词,这对于国内开发者来说确实是个不小的优势。

国外AI版本的下载页面:

国外版下载页面

国外版的页面风格稍微有点不一样,感觉更国际化一些。我当时想的是,既然都提供了两个版本,那我干脆都下载下来对比看看,反正硬盘空间还够用。

项目实现过程报错问题

安装完之后,我迫不及待地打开了应用。结果刚一启动就遇到了问题——报错了!错误信息提示说node版本不兼容。我一看我本地的node还是14.x版本,确实有点老了。

node版本问题

这个问题倒也不难解决。我用nvm把node升级到了18.x版本(其实现在都推荐用18或者20的LTS版本)

国内版 vs 国外版:不只是名字不同

支持的AI模型差异

装好两个版本之后,我第一时间就去看了它们各自支持的AI模型。这一看还真发现了不少门道。

模型对比

国内版支持的模型主要包括:

  • 智谱AI(ChatGLM系列)
  • 通义千问
  • 文心一言
  • Kimi
  • 豆包

国外版支持的模型主要包括:

  • Claude(Anthropic出品,目前我最常用的)
  • GPT-3.5/4(OpenAI家的)
  • Gemini(Google的)
  • DeepSeek(这个倒是国内的,但在国外版也有)

从这个对比就能看出来,两个版本的定位还是挺清晰的。国内版主要接入的是那些在国内可以直接访问、不需要特殊网络环境的模型;国外版则是接入了那些国际上比较主流、但在国内可能需要特殊网络才能用的模型。

实际使用体验对比

我分别用两个版本试了试,发现除了模型不同之外,其他功能基本一致。界面、操作逻辑、代码生成能力等等都差不多。唯一比较明显的区别就是:

  1. 响应速度:国内版用国产模型的话,响应速度明显快一些,毕竟服务器在国内,延迟低。国外版如果网络不好的话,有时候会卡一下。

  2. 中文理解:两边的中文理解能力都挺不错的。可能是国内版接入的模型本身就是针对中文优化的,感觉在理解一些比较复杂的中文需求时会稍微准确一点。

  3. 代码风格:这个倒是没发现什么明显差异,生成的代码质量都还可以。

最后我决定主要用国外版,因为Claude是YYDS

一个意外的惊喜:TODO-list案例

需求的巧合

说来也真是巧了。这几天我正琢磨着写点小项目练练手,刚好想到可以做个TODO-list应用。虽然TODO-list这个东西已经被做烂了,但我觉得作为一个入门项目还是挺合适的,涉及到增删改查、状态管理、本地存储等等,基本该有的都有了。

我当时还在想,要不要用React写,还是试试Vue3,或者干脆就原生JavaScript撸一个?正在纠结的时候,我打开了trae,准备先随便试试它的代码生成能力。

结果你猜怎么着?我一打开trae的主界面,就看到它的示例案例里赫然摆着一个"TODO应用"!

任务列表提示

我当时心里想的是:这也太巧了吧?我正想做的东西,它居然直接就有现成的示例!这不就是那种"瞌睡来了有人送枕头"的感觉吗?

直接开干

既然有现成的案例,我就想着不如直接试试,看看AI生成的代码质量怎么样。于是我点击了那个TODO应用的示例。

trae这时候弹出了一个对话框,问我想要什么样的TODO应用,有什么具体要求。我想了想,就说了最基本的需求:

  • 能添加新任务
  • 能标记任务完成
  • 能删除任务
  • 界面尽量简洁美观

输入完需求之后,trae就开始工作了。我能看到它在一步步地创建文件、生成代码。整个过程大概就一两分钟,比我想象中要快得多。

从基础版到优化版:与AI的对话式开发

基础版本的生成

等trae完成了代码生成,我迫不及待地运行了一下。它用的是React + Vite的技术栈,这也是我比较熟悉的组合。

初始完成页面

看到这个初始版本的时候,我的第一反应是:功能确实都实现了,但这个UI…怎么说呢,有点太朴素了。

具体来说,这个基础版有这些问题:

  1. 界面很单调,就是白底黑字,没什么设计感
  2. 按钮的样式很普通,看起来就是浏览器默认的样式
  3. 任务列表没有什么视觉层次感
  4. 缺少一些交互反馈,比如hover效果、点击反馈等

但不得不说,从功能的角度来看,该有的都有了:

  • 输入框可以添加任务
  • 任务可以标记完成(会有删除线)
  • 每个任务旁边有删除按钮
  • 代码结构也挺清晰的

开始优化

我想着,既然trae号称是AI编程助手,那应该能理解我的优化需求吧?于是我就在对话框里输入了我的想法:

"这个界面看起来有点简陋,能不能优化一下?我想要:

  1. 更现代化的设计风格
  2. 给按钮加上好看的样式和hover效果
  3. 任务列表加上一些间距和阴影,让层次更清晰
  4. 整体色调可以温暖一点,不要太冷冰冰的"

发送完之后,trae很快就给出了回应。它理解了我的需求,并且开始修改代码。这个过程中有个细节我觉得做得挺好的——在应用每次变更之前,trae都会询问我是否采纳:

是否采纳变更

它会清楚地列出这次要改动哪些文件,改动的内容是什么,让我可以先预览一下。如果觉得不满意,可以选择拒绝;如果觉得可以,就点同意。这种交互方式我觉得挺人性化的,不是那种强制性的"我生成了你就得用",而是给了用户选择的权利。

我看了看它提出的改动方案,主要是:

  • 修改CSS样式,添加渐变色背景
  • 给按钮加上圆角、阴影和过渡动画
  • 调整任务项的布局和样式
  • 添加一些微交互效果

这些改动看起来都挺合理的,我就点了"采纳"。

继续迭代

第一轮优化完成后,界面确实好看了不少。但我又发现了一些可以改进的地方,比如:

  • 输入框太小了,可以再大一点
  • 添加按钮可以做得更醒目
  • 任务完成的时候能不能有个动画效果

于是我又跟trae说了这些想法。它又根据我的反馈进行了调整。就这样来回几轮,每次我提出想法,它就修改,然后我再看效果,再提新的建议。

这个过程让我想起了跟设计师合作的感觉——你说你的想法,他做出来,你再反馈,然后再改进。只不过现在对话的对象变成了AI,而且速度要快得多。

最终效果

经过几轮迭代之后,我得到了一个让我比较满意的版本:

优化后页面

这个版本跟最开始的基础版相比,可以说是脱胎换骨了:

  • 整体采用了渐变色背景,视觉上更有层次感
  • 输入框和按钮的设计更现代化,圆角、阴影、渐变色都用上了
  • 任务列表每一项都有明显的卡片感,间距合适
  • 鼠标悬停和点击时都有流畅的动画效果
  • 已完成的任务会有特殊的样式(不只是删除线,还有颜色变化)

当所有改动都完成的时候,trae给了一个明确的提示:

完成提示

看到这个提示的时候,我还挺有成就感的。虽然不是完全自己写的代码,但整个过程中我参与了需求的提出、方案的评审、效果的验收,感觉就像是在指导一个执行力超强的初级程序员。

深入体验:代码质量如何?

项目结构分析

作为一个有点代码洁癖的开发者,我肯定要看看生成的代码到底写得怎么样。先看项目结构:

TODOlist/
├── src/
│   ├── App.jsx          # 主应用组件
│   ├── App.css          # 主应用样式
│   ├── components/
│   │   ├── TodoList.jsx # TODO列表组件
│   │   └── TodoList.css # TODO列表样式
│   ├── main.jsx         # 应用入口
│   └── index.css        # 全局样式
├── public/
│   └── vite.svg         # 图标
├── package.json         # 依赖管理
├── vite.config.js       # Vite配置
└── index.html           # HTML模板

这个结构我觉得挺合理的,该分离的都分离了。组件和样式放在components目录下,主应用逻辑在App.jsx里,层次很清晰。

代码风格和规范

打开具体的代码文件看了看,我发现:

  1. 组件设计:TodoList是一个独立的组件,职责单一,只负责TODO相关的逻辑。这符合React的最佳实践。

  2. 状态管理:用的是React的useState hook,对于这种简单应用来说够用了。如果是更复杂的应用,可能需要Redux或者Zustand,但这里用不着。

  3. 代码格式:缩进、空格、命名等都很规范,看得出来是按照主流的代码风格来的。变量命名也挺语义化的,一看就知道是干什么的。

  4. CSS组织:样式文件和组件文件一一对应,没有那种所有样式都堆在一个文件里的情况。而且CSS类名也比较规范,用的是语义化的命名方式。

  5. 没有过度设计:代码该简单的地方就简单,不会为了炫技去用什么高深的技巧。这点我挺欣赏的,很多时候simple is better。

使用过程中的思考

AI编程工具的定位

用了一段时间trae之后,我开始思考AI编程工具到底应该怎么用,它的定位是什么。

我觉得,AI编程工具不是要替代程序员,而是帮程序员提高效率。就像这次做TODO-list,如果让我从头写的话,我也能写出来,而且可能写得更符合我自己的习惯。但问题是,那需要花不少时间——搭建项目、写组件、调样式、测功能,少说也得大半天。

用trae的话,基础版本几分钟就出来了,剩下的时间我可以专注在优化和调整上。这就好比你买家具,可以选择自己做,也可以选择买成品再改装。前者更符合你的需求,但费时费力;后者效率高,虽然可能需要一些调整,但整体来说更划算。

适用场景

从这次的体验来看,我觉得trae特别适合以下几种场景:

  1. 快速原型开发:当你有个想法,想快速验证的时候,用trae生成一个初始版本,能大大节省时间。

  2. 标准功能实现:像TODO、登录、注册、表单、表格这类比较标准的功能,AI已经见过无数遍了,生成的代码质量通常都不错。

  3. 学习参考:如果你在学习某个新技术或框架,可以让AI生成一个示例,然后研究它的代码实现,这比自己从零摸索要快得多。

  4. 重复性工作:比如你要写很多类似的CRUD页面,手写的话很枯燥,用AI生成然后稍微改改,效率会高很多。

与AI协作的技巧

经过这次实践,我总结了几个与AI协作的小技巧:

  1. 需求要具体:不要说"帮我做个网站",而是说"帮我做个TODO应用,要有增删改查功能,用React和Vite"。越具体,生成的代码越接近你的需求。

  2. 分步骤进行:不要一次性提出所有需求,先让AI生成一个基础版本,然后再逐步优化。这样每一步的改动都比较小,更容易控制。

  3. 及时反馈:看到生成的代码不满意的话,马上反馈,说清楚哪里不满意,想要怎么改。AI会根据你的反馈调整,而不是自己瞎猜。

  4. 保持主导权:虽然是AI在写代码,但你要保持对项目的控制。每次变更都要看一看,确保方向是对的。不要完全放手让AI自己搞。

  5. 善用示例:如果你有参考的设计或代码,可以给AI看,让它模仿。这比单纯用文字描述要准确得多。

总结:值得一试的AI编程工具

用了几天trae之后,我的总体感受是:这是一个值得一试的AI编程工具。

它的优点很明显:

  • 上手快:界面简洁,操作直观,不需要太多学习成本
  • 生成快:从需求到代码,基本上几分钟就能搞定
  • 质量不错:生成的代码规范、可读性好,基本上拿来就能用
  • 支持迭代:可以通过对话不断优化,而不是一锤子买卖
  • 国内友好:有专门的国内版本,支持国产模型,不用担心网络问题

最后想说的是,AI编程工具只是工具,不是魔法。它能帮你节省时间,但不能替代你的思考。想要用好这类工具,你还是需要懂代码、懂业务、懂产品。把AI当成一个超级助手,而不是全能上帝,这样你会用得更好。

写在最后

这次从下载安装到实战开发的完整体验,让我对AI编程的未来有了更多的期待。我相信随着技术的发展,AI会在软件开发中扮演越来越重要的角色。但同时,程序员的价值也不会因此消失,反而会有更多时间去做更有创造性的工作。

如果你也对AI编程工具感兴趣,不妨下载trae试试看。说不定你也会像我一样,遇到个"正好想做的功能就在案例里"的巧合。而即使没有这样的巧合,自己动手试试,也能收获不少。

希望这篇体验文章对你有帮助。如果有什么问题或者想交流的,欢迎留言讨论!

感谢

感谢你读到这里,说明你已经成功地忍受了我的文字考验!🎉
希望这篇文章没有让你想砸电脑,也没有让你打瞌睡。
如果有一点点收获,那我就心满意足了。

未来的路还长,愿你
遇见难题不慌张,遇见bug不抓狂,遇见好内容常回访。
记得给自己多一点耐心,多一点幽默感,毕竟生活已经够严肃了。

如果你有想法、吐槽或者想一起讨论的,欢迎留言,咱们一起玩转技术,笑对人生!😄

祝你代码无bug,生活多彩,心情常青!🚀
在这里插入图片描述

更多推荐