随着时间的推移,人工智能技术以惊人的速度向前发展,正掀起着全新的编程范式革命。不仅仅局限于代码生成,智能编程助手等创新应用也进一步提升了开发效率和代码质量,极大地推动着软件开发领域的快速繁荣。
当前市场上涌现出越来越多的智能编程工具,它们的出现旨在帮助开发者更加迅速而安全地构建应用程序。其中,亚马逊云科技的AI编程助手Amazon CodeWhisperer以其卓越的性能脱颖而出,有效提升了开发人员的生产力。引入这款强大的工具,开发者们能够在创造、设计和完善项目时更为高效,取得令人瞩目的成果。它为开发者们搭建起了一个便捷的桥梁,让他们能够更加聪明地利用人工智能技术来加速创新和优化编程流程。
今天让虚竹哥带大家了解下Amazon CodeWhisperer。
Amazon CodeWhisperer是一款强大的智能编程助手,它秉承着训练了数十亿行代码的经验。借助于其先进的算法和深度学习技术,CodeWhisperer能够以惊人的准确度和实时性为开发者们提供各种代码建议。
在IDEA上安装Amazon CodeWhisperer的插件(虚竹哥用的是IDEA2022.1.4版本)
按照以下步骤在IDEA中安装Amazon Toolkit插件:
1、打开IDEA,点击右上角的 "File" 菜单,然后选择 "Settings"。
2、在设置窗口左侧的菜单栏中,点击 "Plugins"。
3、在 Plugins 页面右上角,输入 "Amazon Toolkit",并从搜索结果中选择相应的插件。
4、点击 "Install" 按钮开始安装插件。
5、安装完成后,点击 "OK" 按钮。
注意,安装完成后,要重启IDEA,才会生效。
依次点击 "View" -> "Tool Windows" -> "Amazon Toolkit"。这将打开Amazon Toolkit视图。
在Amazon Toolkit视图上,您将看到一个名为"Developer Tools"的标签页。点击这个标签页。
在"Developer Tools"页面上,您将看到一个名为"CodeWhisperer"的选项。点击这个选项。
在CodeWhisperer页面上,您将看到一个名为"Start"的按钮。点击这个按钮
选择“Use a personal email to sign up and sign in with Amazon Builder ID”
然后点击“connect”
在弹窗中,选点击复制,这是复制code
然后选择“Open and Copy Code”
会弹出浏览器页面,输入复制的code,提交
输⼊邮箱地址,点击"下一步"
输⼊名字,点击“Next”,CodeWhisperer会向邮箱中发送⼀个验证码
去邮箱找到验证码,复制,下一步
设置密码,密码要求比较高
出现如图这个,就说明创建成功了。
补全注释功能
可以根据前文补全注释,看效果还不错。不喜欢写注释人的福音。
写了一个注释,想写个冒泡排序。自动帮我生成代码了
选择insert code
在方法体里回车,会再自动生成代码
代码生成了
package com.xiaoxuzhu.csdn;
public class TestCodeWhisperer {
/**
* 写个冒泡排序
*/
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int temp = 0;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
运行结果:
实战1只是一个简单的排序算法,要求也不高。现在来升级下实验。输入一段话,大致内容要求是:求每次划动窗口的最大值。
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
要求返回 滑动窗口中的最大值 。
选择insert code
选择insert code
最后生成完整的代码。
package com.xiaoxuzhu.csdn;
public class TestCodeWhisperer2 {
/**
* 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
*
* 返回 滑动窗口中的最大值 。
*/
public static void main(String[] args) {
int[] nums = {1, 3, -1, -3, 5, 3, 6, 7};
int k = 3;
int[] res = maxSlidingWindow(nums, k);
for (int i : res) {
System.out.println(i);
}
}
public static int[] maxSlidingWindow(int[] nums, int k) {
int[] res = new int[nums.length - k + 1];
int index = 0;
for (int i = 0; i < nums.length - k + 1; i++) {
int max = Integer.MIN_VALUE;
for (int j = i; j < i + k; j++) {
max = Math.max(max, nums[j]);
}
res[index++] = max;
}
return res;
}
}
执行的结果是正确的
实验的过程很丝滑,而且ai的理解能力还是很强的,能正确地理解虚竹哥的意思并生成对应的代码。
从leetcode中选一个难度级别比较高的算法题目,看ai能不能理解,并进行正确解答。
选一个动态规划里,困难级别的:
题目是:
给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
开始ai写代码
按提示内容,不断插入代码
最终生成代码:
跑一下结果,为2,是对的。
这样就够了吗?不!让leetcode来判断下生成的代码质量如何
复制代码到leetcode里,然后先运行下
过啦~
提交
击败100%~
此时此刻,有个BGM响起:无敌是多么,多么寂寞~
写个小游戏,看下能不能上下文理解。
游戏规则:
写一个猜数字的游戏,从1~188中,让用户在控制台输入数字,用户如果猜大了,就提示大了,小了就提示小
提示词:随机生成一个1~188以内的数字
提示词:写个标记,默认false
提示词:创建一个Scanner对象
提示词:在循环中,循环条件是flag为true终止循环,先提示 用户进行猜数字,用户输入数字,判断guessNumber的值与number是否一样,如果一样,就设置flag为true.跳出循环; 判断guessNumber的值与number是否一样 ,如果大了提示大了,小了提示小了。
提示词:最后生成提示:恭喜了,猜对了
生成的完整代码,跑起来试试:
Amazon CodeWhisperer的“Amazon Toolkit”插件对idea的版本支持有限制,我从2019版本开始尝试,有不兼容问题,后面查找了资料,是从2022.1版本及以上才支持的。
随着时间的推移,人工智能技术迅猛发展。智能编程助手如Amazon CodeWhisperer大大提高了开发效率和代码质量。CodeWhisperer是强大的智能编程助手,可帮助开发者更快、更安全地构建应用程序。
CodeWhisperer解决了开发中的常见痛点。它可以快速生成准确的代码建议,节省时间。对于不熟悉的编程语言,它提供准确的代码建议,避免语法错误和问题。此外,CodeWhisperer帮助开发者及早发现和修复安全漏洞,提高软件安全性和稳定性。它还消除打字错误和典型错误,提高代码准确性。
CodeWhisperer具有许多优势。它提高了工作效率和生产力,可以自信地进行编码并提供相关开源项目信息。它支持多种编程语言和流行的IDE,提供高效便捷的开发体验。开发者可以随时使用或关闭它,并免费使用,降低了成本。
CodeWhisperer适用于多种场景,可以快速生成样板代码,帮助在不熟悉的编程语言中进行编码,检测安全漏洞,消除打字和典型错误,并减少重复编码的工作。它还适用于其他常规任务和使用不熟悉的API的场景。
在实际体验中,安装和使用Amazon CodeWhisperer的插件非常简单,能够与流行的IDE无缝集成。虚竹哥在使用IDEA安装了Amazon Toolkit插件,并成功使用了CodeWhisperer生成了一些代码。实验的过程由简单注释生成到复杂的算法解答,最后实验写一个小游戏,CodeWhisperer准确地理解了虚竹哥的意图并生成了相应的代码。
此次的体验很愉快,也有收获。可以投入开发生产中,减少开发量,让我有更多时间投入更有价值的工作上。
大家也可以去体验体验,也欢迎找虚竹哥沟通分享心得。
我是虚竹哥,我们明天见~