IDEA插件

除了借助ChatGPT通过问答的方式生成代码,也可以通过IDEA插件在写代码是直接帮助我们生成代码。

目前,IDEA插件有CodeGeeX、CodeWhisperer、Copilot。其中,CodeGeeX和CodeWhisperer是完全免费的,Copilot是收费的,每月10美元。

下面我们来了解CodeWhisperer的安装和使用,如果你还想了解其他的可以在评论告诉我。

CodeWhisperer简介

CodeWhisperer是亚⻢逊出品的一款基于机器学习的通用代码生成器,可实时提供代码建议。

在编写代码时,它会自动根据您现有的代码和注释生成建议。从单行代码建议到完整的函数,它可为您提供各种大小和范围的个性化建议。

CodeWhisperer 还可以扫描您的代码以突出显示和定义安全问题。

CodeWhisperer,经过数十亿行代码的精细训练,能够根据您的评论和现有代码实时生成从代码片段到完整函数的代码建议。让您轻松跳过耗时的编码任务,加快在使用不熟悉的API进行构建的过程。

CodeWhisperer还能够标记或筛选出类似于开源训练数据的代码建议,为您提供相关开源项目的存储库URL和许可证,使您能更轻松地查看它们并添加归因。

通过扫描您的代码,CodeWhisperer能检测到难以发现的漏洞,并为您提供代码建议以立即修复这些漏洞。遵循跟踪安全漏洞的最佳实践,例如遵循开放全球应用程序安全项目(OWASP)概述的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。

CodeWhisperer适应您的工作方式,支持15种编程语言,包括Python、Java和JavaScript,以及您最喜欢的集成开发环境(IDE),如VS Code、IntelliJ IDEA、AWS Cloud9、AWS Lambda控制台、JupyterLab和Amazon SageMaker Studio。

在预览期间,Amazon举办了一场生产力挑战赛。结果显示,使用Amazon CodeWhisperer的参与者成功完成任务的可能性比未使用CodeWhisperer的参与者高出27%,平均完成任务的速度快了57%。

CodeWhisperer提供了IDEA插件,⽬前可以免费使⽤,使⽤起来也⽐较简单。

安装CodeWhisperer

在IDEA中打开配置窗⼝,选择Plugins,搜索”AWS Toolkit”,点击Install,点击OK按钮,如下图:

安装完之后重启IDEA,如下图:

温馨提示:如果搜不到该插件,请将IDEA升级⾄较新版本,亲测是IDEA 2022是可以安装的。

打开AWS Toolkit视图(菜单View/Tool Windows/AWS Toolkit),点击”Developer Tools”tab⻚⾯,选择“CodeWhisperer/Start”,如下图:

弹出的窗⼝中选择“Use a personal email to sign up and sign in with AWS Builder ID”,点击“Connect”按钮,如下图:

在弹出的窗⼝中,选择“Open and Copy Code”,如下图:

此时会在浏览器中打开⼀个⻚⾯,按ctrl-v粘贴code值,点击“Next“,如下图:

输⼊邮箱地址,点击”Next”,如下图:

输⼊名字,点击“Next”,CodeWhisperer会向邮箱中发送⼀个验证码,如下图:

打开邮箱,可以看到验证码,如下图:

复制验证码,粘贴到输入框,点击“Verify”按钮,如下图:

设置密码,点击“Create AWS Builder ID“,如下图:

在最后⼀个⻚⾯中点击“Allow”按钮,如下图:

出现如下提示后,即表示注册AWS builder ID成功,如下图:

返回IDEA,在AWS Toolkit视图中的Developer Tools中可以打开或关闭代码⽣成功能,如下图:

使⽤CodeWhisperer

新建⼀个类,写出冒泡排序的注释,,代码如下:

package one.more;public class SortUtils {/** * 冒泡排序 */}

可以看到右下⻆的CodeWhisperer图标前⾯有⼀个圈,表示正在⽣成代码中,如下图:

代码⽣成完毕,会出现如下界⾯:

可以看到,CodeWhisperer已经⽣成了代码,此时可以按下 Tab 键确认代码,也可以点击”Previous”或”Next”切换不同的代码,最后按 Tab 键确认。

生成函数名以后,还可以生成函数体,如下图:

最终,生成的代码是这样的:

package one.more;public class SortUtils {/** * 冒泡排序 */public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}}

注释写的越精确,⽣成的代码质量越好。当然,CodeWhisperer⽣成的代码并不总是正确或最优,需要视情况进⾏修改或优化。

总结

Amazon CodeWhisperer,经过数十亿行Amazon和公开代码的训练,能够理解用自然语言(英语)编写的评论,并实时生成多个代码建议,以提高开发人员的工作效率。该服务直接在集成开发环境(IDE)的代码编辑器中为完整的函数和逻辑代码块(通常由10-15行代码组成)提供建议。生成的代码与您编写代码的方式相似,遵循您的风格和命名规则。我们可以快速接受排在首位的建议(按Tab键)、查看更多建议(按箭头键)或继续编写自己的代码。在接受代码建议之前,请务必审查并可能需要编辑以确保完全符合您的预期。在键入过程中,CodeWhisperer甚至会主动提供完成注释的建议。