Trae的基本操作了解之后,就可以实战了。但是一直不知道做点什么。
上周四的时候突然想到做一个替我做选择的转盘小程序。比如,晚饭不知道吃什么时候,转一转就有答案了。需求如下: 这是一个微信小程序,为用户提供一个有趣的决策工具。小程序展示一个标题,有一个等分成12个区的马卡龙色系圆形转盘,每个区放一个答案。还有一个放在圆盘12点种位置的倒三角指针,用户可以滑动手势转动转盘,转动停止后,指针位置答案即为用户选中的结果。用户还可以修改标题,定制答案内容,并且可以增删答案项。
需求想好了,就可以开始干了,先用Wechart Devtools创一个JS空工程:
然后用Trae打开工程,在右侧builder输入生成转盘的具体需求:
然后Trae开始生成,等了好半天吧,终于给我生成了一个如下图的转盘小程序:
生成的有点糟啊!虽然颜色什么的符合要求了,但是转盘只显示了四分之一啊!试着用滑动手势转了一下转盘,直接报错了:
反手把错误码贴到给Trae:
等了一段时间后Trae提示了错误原因并给出了修改方案:
点击接受修改后,打开Wechart Devtools一看:虽然修改后报错没有了,可是转盘还是没有办法旋转。于是回到Trae告诉它手势没有起作用让它检查和修正。
然后开启新一轮等待.....修改完成后又报了新错误:
同样把错误复制给Trae,再次新一轮修改。如此反复了多轮,终于把报错清掉了。可是转盘却彻底显示不出来了。当天就暂时作罢。
第二天,我又试着想把程序调通,最后只是能把转盘转起来,但是显示四分之一的问题还是没有解决。
第三天,我想了想不是Trae不够聪明呢?打开Cursor,同样也创了一个空工程,然后输入需求让Cursor生成小程序看看效果。这次让Cursor生成两个面页,首页是转盘,设置按钮,点击设置按钮后可以进入设置页修改和定制转盘。
等待生成完毕之后,同样也还是有一些错误信息需要贴给Cursor修改正,最后首页的效果如下图,转盘转动也很顺畅:
设置页也基本是根据需求来的:
但是,Cursor做的这个小程序有一个致命的问题:每个扇区都是一个半圆型。这样导致从始至终只能看到最后绘制的选项。反复跟Cursor调试提示了很多轮,但是始终没有弄对。而且重新生成了几次还是类似的效果,只好又暂时作罢。
后来想了想,只有一段非结构性的小程序描述,也没有做详细设计,要求AI一次性提示生成没有一点问题的小程序也不现实。所以,最后决定返回Trae继续开发,并且改一下策略从头开始生成:第一步先是跟Trae进行几轮聊天模式对话,生成详细的设计文档。里面包含两个界面原型以及对应的功能及要求。
然后,根据需求文档,一个面页一个面页,一个一个功能提示Trae进行编码。每一步都进行功能的检查,每一步都像上面演示的调试过程一样,给Trae反馈错误,Trae进行修改,确保功能的正确。而且我发现Trae如果无法确定错误原因的时候,还会增加日志,要求你运行后将日志返回给它。这个过程和人工调试是类似的。
忙活了两天,今天终于完成了一个功能和显示都正常的转盘小程序:
在这个过程中还碰到一个比较棘手的问题,就是转盘停止后,弹窗提示的选中项跟实际转盘指针项不一致,多次提示Trae,进行多轮修改都没能改对。只好自己研究了一下生成的代码,人工修正了选中项的计算逻辑,但是还是有偏差。
最后,仔细检查了一下Trae输出的角度日志,发现当前保存的角度值和实际转动的角度值并不相符,比如显示转动了60度,实际却转动了120度。提示给Trae后,它终于发现是动画绘制部分角度累计计算造成的。
综上所述,AI开发确实可以让不太熟悉某类程序开发的人进行快速开发,不需要特别关注代码细节。但是,有一些问题还是需要人工介入,仔细观察,并给正确的错误现象。而且,在一步一步提示Trae生成代码然后Review的过程中,你会发现AI生成的代码不太考虑整体结构和跨文件公共代码抽取,会有很多重复和遗漏的点,而且有一些很明显会带来新隐藏BUG。这就需要程序员具有整体结构和抽象层面的能力,在生成过程中提示它做出正确的抽象和修正。这样能够在后期代码越来越多的时候仍然保证运行的正常。
好了,以上就是我这次Trae实战之旅的全过程!
关注「智践行」公众号,我们一起成长!