互联网资讯 / 人工智能 · 2023年11月19日 0

利用AI提升代码编写效率,告别复制粘贴。

利用AI提升代码编写效率,告别复制粘贴

作为程序员,是否曾想象过有一天,无需再依赖Google或Stack Overflow进行编程,也不再需要频繁地使用Ctrl + C和Ctrl + V?当你在IDE中输入某个编程语言的关键字时,下一步的代码便会自动呈现,仿佛在导航你前行。

又或者,是否想过有一天,只需简单表达几句话或写下几行代码,便能实现你的需求,轻松完成开发。闲聊间,bug便会悄然消失,一切都在指尖之间轻松完成。

想象一下,如果编写程序的过程中有一个智能助手,像你购物或旅行时的导航一样,告诉你哪个API调用更为常用,以及它们的使用方式。这将为你释放出大量时间,用于从事其他你热爱的事情,甚至能够接更多的需求,编写更多的代码。

这样的情景,你是否曾设想过?

有一个调侃程序员的笑话:一位技术水平一般的程序员常常加班至深夜,频繁遇到bug,让他的女朋友十分心疼。某天,这位程序员发现,前一天晚上的bug在第二天竟然自行修复,令他惊讶不已。后来,他突然意识到,原来是他的女朋友在午夜时分默默地为他修改代码……

看到能写代码的女朋友,是否让你对前述的想法更加向往了呢?梦想总是要有的,谁知道它会不会实现呢?

在此,我们要介绍的便是今天的主角——“写代码小助手”,或称“AI代码小能手”,无论你如何称呼它,随你开心。它就是CodOTA:

1. 安装

在IDEA的插件列表中进行搜索,你一定会注意到开头的介绍中提到的“AI code completions”。其他IDE也大致相同,毕竟他们的口号是“AI code Autocomplete for All Languages and IDEs”,重点是适用于所有语言和IDE。

安装插件后,当你编写代码时,提示列表中将会出现许多浅绿色的内容,这便是CodOTA的成果。

2. 使用

在官方功能介绍视频中,以JDBC为例,除了API调用的提示,CodOTA还会自动生成常用代码片段,这也是他们自信喊出响亮口号的原因。

例如,当你在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里已经提示你了:

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 }}); // ...do something } catch (IOException e) { // ...handle IO exception }

为了提升开发效率,许多人曾记录一些常用代码片段,通常称之为代码Snippet。一些编辑器中也有这类管理工具。现在,连Snippet的过程也省去了,同时也不再需要Ctrl + C和Ctrl + V。

3. 查看更多

如果在提示列表中没有找到感兴趣的内容,想查看更多示例该怎么办?

很简单!在某个关键字上右击对应的类名,在弹出的菜单中选择“Get Relevant examples”,便能在IDE的右侧看到更多关于该类的使用示例。

4. 再多

如果仍然不够,点击链接,在浏览器中一次性查看更多示例吧。

注意:

1. 必须保留并原样返回所有 [[[IMG_n]]] 占位符。