我正在参加Trae「超级体验官」创意实践征文,本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source…
前言
最近在研究Tomcat吞吐量的计算,有一个功能需要实现:实时打印当前线程所使用的CPU核心。这个功能说难不难,就是需要通过JNI调用C++代码来获取当前线程使用的CPU核心信息。
刚好字节也出了一个对标Cursor的编辑器-Trae,恰巧我的Cursor试用也到期了🤣,而且Trae在测试期间免费使用并且也有着类似Cursor的Composer功能-Builder模式,试一下功能究竟如何。
安装并配置插件
登录时需要科学上网才能使用,这一点就比较麻烦了。看看后续字节能不能改成使用国内的大模型吧。
主界面长这样,跟VS Code一样,但是是整体页面的风格以及安装时就能选择中文这一点给他点个👍。在初始界面的右边,就是Trae和VS Code区分开来的地方了:一个AI对话框。
在Chat模式下可以选择Claude-3.5-Sonnet以及ChatGPT-4o的模型,但是在对标Cursor的Composer模式-Builder中目前只有Claude-3.5-Sonnet模型使用。
安装完成后,就去插件中心安装Java的开发插件。Trae的插件中心跟VS Code大差不差,还是那句话:不愧是大厂,UI就是好看!
开始使用
Builder模式
我的述求就是生成一个Maven项目,这个Maven项目的作用是:提供一个API,打印当前线程所使用的CPU核心。
使用这些AI的IDE就需要将自己的需求完完整整详细的提供给AI,不然的话初始生成的代码就不够完善,需要多次修改。
提供给Trae的文本:
一个Maven项目,groupId:io.github.azirzsk, artifactId:print-uses-cpu-core。提供一个API打印当前线程所使用的CPU核心,使用JNI并且需要兼容Windows和Linux系统。这个maven项目会被其他Maven项目所引用,所以需要考虑编译后的文件能否被引用。生成一个markdown文件,详细描述如何使用或者编译项目。
此时我们把我们想做的事情,也就是上面的这句话复制Trae中,看看生成的效果。
总共花费了大概两分钟的时间,为了能更快看到效果我把GIF设置了两倍速**。**
Trae总体生成下来还是不错的。但是个人感觉还是有一些问题的:
- JNI的使用:缺少编译
.so以及.dll库文件的命令。 - 库文件的加载:生成的
CpuCore.java没有对库文件是否存在进行校验。
对于这两问题再次丢给Trae进行优化:
也是用了大概两分钟,二倍速播放中
确实是针对这两个问题进行优化了,但是在我的想法中,应该是在原文件上进行修改的。而不是另起一个新的文件进行新增,而且提示使用mvn clean package进行编译也发生了报错。
回退操作
Trae有个比较好用的操作时,当AI给你提供错误的代码时,能快速的回滚这一次生成的代码。
回退成功后,回到我们的正题,这次不让Trae帮我们生成全自动的编译指令了。而是让它给我们在一个文件中生成编译.so以及.dll库文件的命令,我们手动执行看看。
这次生成的脚本看起来就对了,但是还是有一点问题,那就是生成的库文件放在了target目录下。这个目录下的文件并不能别其他项目所引用的,所以还是要改改代码。
这个时候就不使用Builder模型进行修改,因为只是简单的修改库文件生成的目录,试试Trae的Chat模式。
Chat模式
Chat模式与Builder模式不同的是,发生代码变更时,Chat会让用户选择是否采用本次生成的代码,而Builder则会替你自动修改代码。
生成一个测试类试试看:
错误排查
当执行命令时,发生错误后,可以在命令行中选中错误的信息并加入到对话中,就可以快速的询问大模型。
内嵌聊天
对于新建的文件,首先就会提示AI的功能使用说明,并且在意图识别成功后,自动唤起侧边栏进行进一步的操作。
使用过程中的问题
- Chat模式下,应用AI生成的代码变更等待时间过久
讲道理,在我看来应用AI生成的代码只是新旧文件的对比,为啥还要这么久的应用时间呢?难道是让大模型来对比了嘛?
- 生成gitignore文件后,IDE无法展示文件内容(偶现)。
关闭再次启动就可以看见了。
- 文件内使用内嵌聊天后,自动唤起的侧边栏不能自动定位到Chat模式,会比较误导人。
和Cursor等IDE的区别
因为我的Cursor试用已经过期了,所以只能回想在脑海中的记忆了。
- 非常重要的一点,UI好看!
- 操作人性化,交互体验上好太多了。
- 有更多为程序员考虑的地方:
- 回退到上一个聊天的代码空间
- 更多的可以快速唤起AI的地方
- 生成代码时阻塞生成等待命执行完成后继续生成
后记
在这篇文章发布的时候,看到一条新闻:
国内也有运营是最好,现在想用上的话只能科学上网,而且国外的模型调用上还不稳定。希望在国内可用之后,模型的响应能更快以及能开放更多的模型可选择。