作为程序员,你是否曾幻想过,有一天不再需要依赖Google和Stack Overflow进行编程,也不再需要频繁使用Ctrl+C和Ctrl+V。当你在IDE中输入某个编程语言的关键词时,所需的代码自动展现在眼前,简直就像导航一样。
想象一下,若能简短地描述需求或写下几句话,就能完成代码开发,轻松解决bug,一切都在指尖之间完成。
又或者,你会设想,如果编写程序也有一个智能助手,能够告诉你哪些API调用更受欢迎,以及其他开发者是如何使用它们的,那该多好。
这样一来,你就能腾出大量时间去处理代码以外的事务,甚至接更多的项目,写更多的代码。
这样的场景,你是否想过呢?
在程序员圈子里,有一个调侃的笑话:一位技术水平一般的程序员,每晚熬夜写代码,经常留下bug,女朋友对此非常心疼。后来,这位程序员惊奇地发现,前一晚留下的bug第二天竟然在公司正常运行。直到某天半夜醒来,他发现女朋友正在电脑前帮他修bug……
看到能够写代码修bug的女朋友,是否让你对前面的幻想更加向往了呢?
梦想总是需要有的,万一实现了呢?
正如我们今天要介绍的“代码助手”,或称“AI代码小能手”,无论你怎么叫它,开心就好。
接下来让我们了解一下CodOTA:
1. 安装
在IDEA的插件列表中搜索,你会注意到“AI code completions”的介绍。
其他IDE也大致相似,因为他们的口号是“AI code autocomplete for all languages and IDEs”,强调对所有语言和IDE的支持。
具体功能如何,我们来看看它的表现。
安装插件后,在编写代码时,你会发现提示列表中出现了许多浅绿色的内容,这就是CodOTA的成果。
2. 使用
官方功能介绍的视频以JDBC为例,除了API调用提示外,还有常用代码片段的自动生成,这也是他们敢于高声宣传的原因。
例如,当你在IDE中输入“file”时,它会询问你想要执行的操作。
如常用的文件拷贝、内容压缩等。如果选择“copyfile”,对应的代码就会自动生成:
try (FileInputStream fis = new FileInputStream(srcfile); FileOutputStream fos = new FileOutputStream(dstfile)) { int len; byte[] buffer = new byte[4096]; while ((len = fis.read(buffer)) > 0) { fos.write(buffer, 0, len); }}
现在,你明白为什么他们的口号如此响亮了吧。
另外,你可能注意到提示列表中,FileOutputStream和FileWriter后面的数字。这是除自动补全外,AI所具备的能力,毕竟它还进行了大数据分析。
特别是在多个外部项目依赖的情况下,如果出现重名,它会告诉你更受欢迎的选择。
比如你需要通过HTTP请求资源,除了要使用GET/POST、构造Entity、拼接URL外,还要做什么呢?在写下HttpClient的同时,IDE已经给出了提示:
那就选择POST吧,随着下方向键的点击和Enter键的敲击,代码便生成了:
try { HttpPost httpPost = new HttpPost(“https://example.com”); httpPost.setEntity(new StringEntity(“{\”key\”: \”value\”}”, ContentType.APPLICATION_JSON)); String responseBody = httpClient.execute(httpPost, httpResponse -> { int status = httpResponse.getStatusLine().getStatusCode(); if (status < 200 || status >= 300) { // … handle unsuccessful request }} HttpEntity entity = httpResponse.getEntity(); return entity != null ? EntityUtils.toString(entity) : null; }); // … do something with response } catch (IOException e) { // … handle IO exception }
为了提升代码开发效率,许多人会记录常用代码片段,通常称为代码Snippet,一些编辑器里也有这类管理工具。
现在,Snippet也省去了,连Ctrl+C和Ctrl+V的步骤也不再需要。
3. 查看更多
如果提示列表中没有你感兴趣的内容,想查看更多示例该怎么办?
简单!
在某个关键词上右击对应的类名,在弹出的菜单中选择【Get Relevant examples】,你将在IDE的右侧看到更多关于该类的使用示例。
右侧的显示
4. 再多
如果还不够,点击这个链接,在浏览器中一次性查看更多示例吧。
[[[IMG_1]]]
[[[IMG_2]]]
[[[IMG_3]]]
