⭐️⭐️⭐️请在文章正文第一句添加:我正在参加Trae「超级体验官」创意实践征文, 本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source…
引言
最近接到了一个业务需求,大致背景如下
- 业务背景是我们产品对接了第三方系统,我需要提供接口,让第三方把他们的字典表数据,导入到我们的数据库中
- 每个字典表只考虑新增和删除
非常简单的一个crud的需求,对我而言完全没有复杂度,但是它很繁琐
- 10张表,只考虑新增和删除, 也得写20个接口,非常耗费时间
- 每张表字段很多,数据库有非空、长度限制,你必须做好校验,不然报错了就得找你
作为一个资深后端程序员,我对于这种需求从来都是抵触的,因为这全部都是体力活,开发、测试、上线。没有任何的技术含量,也不会有什么提升,之前每次做类似的需求,我都深深的感觉到自己就是农民工。
我其实一直想把AI融入到日常的开发工作中,但我一直有一个心态就是,我花10分钟就能做完的事情,何必探索着用AI花20分钟才搞定呢?所以一直拖着,日常开发没怎么用AI。
可这次的工作量还是有点大了,这么多接口和表,还得捋顺参数校验,我岂能浪费这个时间。
作为一个前字节员工,也看到掘金正在推广Trae,老东家的工具必须得拥抱和支持一下,所以这次我决定用Trae来试试。
这次的需求本身不复杂,就是简单的Crud,目前已经把基础的功能都实现了,我把这次使用的过程记录下来,也希望大家可以尽快用AI减轻自己工作的负担。
Trae安装
下载链接放在这里,目前只支持macOs,windows用户可能需要再等等,我估计很快就会支持了。我盲猜是因为字节的开发都是mac,你要想找点windows开发工程师可能还真是不太容易。
目前Trae提供了两种模式,分别是Chat和Bulider。
看起来能做的还不少,我的目标是在已有的项目做修改,所以我就选择了Chat模式,Builder模式主要对应的是一个从0到1项目构建所用的,大家如果需要弄个页面啥的可以,这次我就不用了。
目前代码补全、重构已经是所有AI功能的标配了,我这次可不是只想补全代码,我是想让它帮我的工作给完成。
模型使用的是Claude-3.5-Sonnet和GPT-4o,目前是免费的。
代码生成
第一步当然是建实体类了,起初我先自己建了实体类,把之前的字段复制过来了。
AI直接就把接口和Mapper写好了,但我一想我还有一堆表呢,自己写实体类太复杂了。
哦对,还得做一些非空校验、长度校验于是我想不如直接让AI把这活干了吧。
表实际字段非常多,我就不全都放出来了。
谢谢它,AI把我最头疼的参数校验问题解决了,我的接口本身就是给第三方提供的,如果我不校验,那么很有可能插入数据库会有报错,有可能是超长,有可能是数据库本身的非空校验,注解都加好了, 我就省心了。
考虑的还算全面,比刚毕业参加工作的我表现好很多。
然后就是重复工作了,我把需要用的表结构一个一个的给它就好了,这里忽略掉其他表结构的截图。
创建好实体类,我可以闲着,它不能闲着,来,把接口什么的都给我写一下。
我没用什么复杂的提示词,但整体干的不错,并且把下面需要做的事情也都考虑到了,他应该是考虑到了上下文输出限制,很多方法都是tudo接着干吧。
接下来就是把最简单的Crud代码,包括Controller、Service、Mapper、xml都写好了,复制粘贴一下就完成了。
AI修复
虽然代码写完了,但是有一些报错,当然就算是我自己cv的代码肯定也有报错。比如这里AI生成的是PostMapping,但是我们用到的Mapping是公司组件封装的,和之前的Controller代码不一致。
Trae提供了AI修复功能,点击AI修复功能,就可以自动识别修复意图,根据上下文代码,知道了我想改什么,我很满意。
虽然我自己全量替换就能搞定,但是它能自己把错误改对,心里就是舒坦。
上面说的都是一些代码生成工作,其实之前有一些组件比如EasyCode也可以帮我们完成,但是这还是一个完全不同的体验,而且我们还可以让他干更多的工作。
意图识别
还有一个地方是让我觉着十分厉害的功能,就是意图识别。
SpringCloud项目提供的接口,后端都会有一个降级后接口的返回逻辑,也就是需要写一个OpenApiNewFallBackImpl,这里面有固定的报错返回信息,这里面的方法需要和OpenApiNew里面保持一致。
这次我新增了十几个接口,那OpenApiNewFallBackImpl同样的我也得新增十几个接口,之前我都是手动复制过来,还得写上对应的方法名,很烦。
Trae是可以提供上下文的,我本来选中了OpenApi这个文件想要告诉他帮我修复一下代码报错。
但是我一不小心还没来得及写提示词,就发出去了。但没想到的是它直接识别了我的意图,好好好,提示词都不让我写了。。
说在最后
以上就是上Trae完成我自己一个需求的整体流程,用时一天。
最后我想聊聊我的看法,这篇文章介绍的是一个后端程序员非常容易遇见的一个场景,如果五年前我一定会认认真真的敲好每一个接口,而现在我必须学着借助AI的力量。
如何拥抱AI?是有问题从百度改成去问问AI?学习怎么写好提示词?还是仔细研究AI原理,让自己变成专家?
我认为是把手里的工作全都尝试着用AI来干一遍,这才是真正的拥抱AI。在这个过程中你会感受到哪些是AI能做的,哪些是AI暂时能力还不足的,这样才能提前对未来的趋势作出判断,找到自己新的机会。
以我看来,AI对于后端最大的改变,就是把“体力活”省掉了。程序员常常自嘲自己是「码农」,我想以后可以不用这样称呼自己了,我们干的全都是脑力工作,体力活都交给AI了。
不过我暂时也没幻想着AI能把所有工作都干了,我也希望这个局面晚一些来,而且我始终认为人才能主导系统和程序,AI只是辅助。
但是AI能把那些费时费力的工作帮我做了,剩下的时间都来给大家写点文字,不是更好吗?
这是东东拿铁的第72篇原创文章,欢迎关注。