实测Java编程神器,体验一行行补代码的感觉
扫描二维码
随时随地手机看文章
写代码,最常用什么?当然是「代码补全工具」,之前笔者就一直有用过这一类工具,发现国内也一直有团队做这方面的工作。而且最近 aiXcoder 正好推出了「本地2.0」,笔者就准备实际试试体验。
笔者赶紧试用一番... 发现新的2.0版一改之前1.0版对电脑性能的高要求,在笔记本上运行也能又稳又准,而且所有预测都在本地笔记本上完成,断网也能正常预测。而且说,这该是我用过的唯一一个完全本地化的AI代码补全工具。
废话少说,我们先看体验。
长预测,用起来的确比较爽
刚使用 aiXcoder 2.0 会发现一个特点,它给出的提示备选条数少了,只有两行!可准确率却有明显的提升,使用体验爽了很多。对比其他同类插件,动辄给出满屏的备选项,感觉要纯净很多。看上去aiXcoder开发者对其「提示准确率」还是很自信的。
两行推荐,一短一长,第一个是短推荐,它应该是我最可能需要的短结果,第二个是长推荐,很多时候能预测出一整句程序!
笔者试着写了一个 Java 函数,它的长预测基本上能覆盖整个函数的每行代码,一整段代码,很多时候只需要键入了几个首字母,其他靠aiXcoder自动补全,爽!
从体验上来看,aiXcoder 2.0预测得还是非常准的,并且与之前用过的TabNine相比,它的提示的出现频率高了很多很多,基本每一次键入都会有对应的补全推荐。
笔者之前写 Java 就有试过 Codota,为了对比看看效果,我又启用了Codota,写下了三段相同的代码。总体上,唯一感觉是,aiXcoder 2.0 的长预测补全很爽,键入字符数明显比IDE 或Codota要少。
图注:aiXcoder补全实测
图注:Codota 补全实测
从笔者随机选取代码来看,统计数据确实也验证了我的感觉:aiXcoder 2.0推荐了 57次,我接受了 51个结果,三段函数只键入了 106个字符;Codota 推荐了 28次,我采用了 18次,且键入了 169个字符。
笔记本上跑深度神经网络
据aiXcoder发布的2.0版本的更新信息,他们对后端的深度学习引擎进行了大幅修改,大幅提升了反应速度,并降低了对电脑的性能要求。在我的 MacBook Pro 笔记上,基本感觉不到延迟,它和IDE推荐的API基本是同时出现的。
为了验证是不是全部计算都在本地完成,我特意关闭了网络连接,看看它对同一段代码的预测是不是正常,结果是,关不关网络连接,预测都是一样的。
另外,在笔记本上用,我还是比较在意性能的,在测试插件的时候,特别关注了它消耗的计算资源。打开进程管理器,一边写一边观察 CPU 占比。基本键入代码的过程中 CPU 占比在10%吧,停止键入很快就降到0了。看来,咱的笔记本上还是可以跑深度神经网络的~
新版 aiXcoder2.0 还有一个特别好的选项,能平衡「补全能力」和「计算性能」之间的关系。下图中间那个滚动条,向左拖动,越靠近「Faster」,表示会尽快返回预测结果;向右滑动,越靠近「Longer」,表示插件将反馈给你更长的结果,当然也需要更多的计算时间。
我的台式机比笔记本电脑性能高不少,在台式机上,那调整滚动条就能获得更好的体验,小伙伴们可以试试~~
IntelliJ市场下载,安装便利
好了,说了这么多体验,你是不是也想试试?方法特别简单,在 IntelliJ 插件市场上,直接搜索「aiXcoder」,即可安装。
安装插件以后,它会自动下载服务端。笔者发现,服务端的大小比之前的版本小了很多,下载很快完成。安装后,插件的启动也变快了很多。
隐藏功能——搜Github代码
除了代码补全,它还有一个「代码搜索」功能,容易被开发者忽略:在IntelliJ中,直接选中代码块,鼠标右键单击,会有一个「用 aiXcoder搜索相似代码」的功能,可以直接寻找Github上的相似代码。
登陆aiXcoder.com的网站,发现他们居然还发布了一个「代码搜索引擎」,提供了很多搜索Github代码的办法,用关键词搜、用API名字搜、用代码搜,甚至用自然语言直接搜代码...
这个代码搜索引擎,还可以通过网页访问,地址在下面,各位朋友也都可以试试:
codesearch.aixcoder.com
我接着手头正在写的二分搜索代码,在「自然语言搜代码」中输入中文「二分搜索」,然后神奇地找到了一票实现。貌似,我可以直接修改修改就用了~~
体验一番下来,笔者感觉aiXcoder 2.0的确不错,赞!
在IntelliJ市场上,aiXcoder2.0已经有12.5万下载了,作为一款国产代码生产神器,特别希望它有更多的提升,咱们也应该多多支持。如果真正体验新插件的魅力,还需要大家真正上手试试。
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!