前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >啥?IDEA可以帮我写代码了?

啥?IDEA可以帮我写代码了?

原创
作者头像
世玉
修改2024-04-29 09:26:57
6204
修改2024-04-29 09:26:57
举报
文章被收录于专栏:世玉的专栏世玉的专栏

前言--这是一篇关于CodeGeeX的使用测评。在AI时代,还不会使用AI工具助力提升工作效率的,多半会被同事或者领导嫌弃,甚至于被时代所抛弃...........

去年10月左右,AI进入了一个白热化的时间段。各种AI工具层出不穷。随着CHATGPT一声枪响,百度公司揭竿而起,推出了文心一言。腾讯推出了腾讯优图,阿里推出了通义灵码,微软推出了Copilot其它公司不甚了解就不多说了,但是基本上我接触到的都是在网页上面问答居多,而我是一个做软件开放的程序员,谁能理解我在chatgpt上面提问需要翻墙,然后等待10多秒甚至30秒的等待,得到了结论再粘贴到我的IDEA里面这样的痛苦?

一个偶然的机会,我接触到了CodeGeeX. 一个深得我喜爱的编程利器。

官方网站
官方网站

一开始,我也以为CodeGeeX是和CHATGPT一样需要收费的。我当时好像还给了100元巨资,但是使用感受,就难受的一批。但是在了解到CodeGeeX是免费使用后,就很有兴趣继续了解下去了。当时他们的策略是通过邀请2个人安装使用就可以免费使用,就这样,我给我的2个同事推荐了这个编程神器。下面我将大概的讲诉一下我的使用体验。

1. 代码生成和代码自动补全功能

这是领导要求修改的一段代码片段,需要在现有基础上增加状态9,拓宽查询范围。

在收到消息以后,我就进入idea里面进行修改。

很神奇是吧,由于原来的代码只需要查询状态等于12的数据,所以下面的代码还是eq 12的。但是我这里需求变为需要加个状态9的,所以我需要做的就是把eq变成 in 查询。 那么我先创建了一个Integer数组,我还没写后面的代码,CodeGeeX就利用自身的能力帮我想好了接下来要写的代码,我只需要按一个tab 键就可以了。这样的例子在我使用过程中还出现过多次,比如下面的情况

我在编写一个调用其它组员的feign接口的方法时候,需求描述如下:

我在写到对应地方的时候,把注解标注上,那么CodeGeeX会自动的生成下面一大段的代码片段。

比如这个时候填写入参的时候,他会自动联想并给出提示,我只需按tab即可。不过这里的缺点就是它并没有去真实的查看这个query内部的字段描述,给出了错误的提示。

不过针对可以明确在当前上文查看的代码片段,它的提示是相当准确。

比如这里,他会结合上文的文字描述以及对应的字段注释,给出正确的代码提示,我也只需要按tab即可,而且相应的速度也是非常的快。

针对某个时候,比如我需要把前端传递的JSON数据粘贴下面,放在我的本地使用,比如修改某个字段的数据,在测试时期是很有用的。但是如何把这个json文件再次活化成对应的实体?那么我们就需要写对应的工具类方法。好的,有这样的刚需,我可以直接把问题描述清楚,给CodeGeeX提出,他会给我写出具体的代码片段。

嗯,功能还是相当强大的。利用了泛型。而我的项目中用不到这么强大的工具,我也并不想让它成为大家用的,我可以提示它继续修改。

可以看到CodeGeex根据我的描述修改了它的代码片段。至此,我的功能已经达到了要求,我们不可能让它再细化了,此时就得靠我们根据实际情况来调整代码了。

最后我调整的代码,可以看出来和CodeGeex相对比,代码简洁了很多,也不需要太多的操作。但是从功能而言,CodeGeeX提供的第一版代码无疑是最合理的。

2. 编写单元测试

在开发后期,我们需要做的最多的操作就是测试工作,比如一个方法在开发前期,由于各种原因导致没办法测试,只能写好了先放在那里。等到后期各个微服务之间的接口都已经开发完成了,测试数据也基本有了的时候,就是疯狂测试的时候了。但是这个时候一个很大的方法,很难做到完整的测试,那么就需要碎片化,把大方法内部的各个小方法单独写测试用例。如下:

可见这个大方法里面做了非常多的工作,里面的部分地方引用了其它的小方法。

那么针对这样的情况,我们首先需要保证引用的小方法是对的,确保我们得到正确的数据,这些小方法是否是可靠的,那么就需要写对应的单元测试案例。但是一个大方法含有的小方法太多的时候,手写单元测试会是一个很痛苦的事情。这个时候我们就可以使用CodeGeeX的能力了。

3. 生成代码注释

一键对方法生成注释。

甚至可以直接把这个方法转换为其它语言的方法。

通过多个项目的开发经历来说,使用CodeGeeX以后,曾经一些针对百度的搜索筛选的耗时减少了大概有20%,过去一个方法不知道怎么调用的具体来说比如hutool 里面时间转换是怎么用的。我需要去百度搜索,然后打开对应的博客,然后再找到具体的那一行代码。有的时候,博文里面根本就没写,导致不得不再次查找其它的博文。 而当使用了CodeGeeX以后,我比如写到了时间转换这里的时候,它的代码补全耗时也就是1秒,这个提升是巨大的。对比以前没用CodeGeeX的时候,我现在开发过程中百度搜索的次数明显下降了很多。这在提升工作效率方面来说,帮助也是巨大的。

当然在一些未知领域,比如我是写Java的。但是对应游戏,我并不会写。我有时候就会想要写一个小游戏来自娱自乐,或者说好奇心作祟想要知道游戏到底是怎么开发出来的。对此我会给CodeGeeX下指令,比如说让它写一个贪吃蛇游戏出来。它也能开发出来。

过去不懂游戏是怎么开发的,就觉得非常难,当然也有在百度里面去搜索过,但是基本不会有什么收获。最多就是下载一份游戏下来,有些游戏的代码是被压缩过,有些由于里面的算法太过于复杂以至于压根没心情看下去。所谓的太长不看就是这个心理。 但是有 了CodeGeeX以后,我发现原来贪吃蛇是这么写的。里面的核心算法就是针对方向键的控制。以及四周墙壁的设置。还有尾巴加长,位移等等。正所谓不会才觉得难,会了也就是那么一回事。

那么,说了这么多,怎么安装呢?您可以到IDEA的插件市场搜索CodeGeeX, 如果你使用的是VSCode,也可以到插件市场搜索。

结论:AI工具无疑是提高人类生产力的得力帮手,善用AI工具的人也必将成为新时代的翘楚。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档


http://www.vxiaotou.com