搭建智能桥梁,Amazon CodeWhisperer助您轻松编程

news2024/11/24 2:08:25

零:前言

随着时间的推移,人工智能技术以惊人的速度向前发展,正掀起着全新的编程范式革命。不仅仅局限于代码生成,智能编程助手等创新应用也进一步提升了开发效率和代码质量,极大地推动着软件开发领域的快速繁荣。

当前市场上涌现出越来越多的智能编程工具,它们的出现旨在帮助开发者更加迅速而安全地构建应用程序。其中,亚马逊云科技的AI编程助手Amazon CodeWhisperer以其卓越的性能脱颖而出,有效提升了开发人员的生产力。引入这款强大的工具,开发者们能够在创造、设计和完善项目时更为高效,取得令人瞩目的成果。它为开发者们搭建起了一个便捷的桥梁,让他们能够更加聪明地利用人工智能技术来加速创新和优化编程流程。

今天让虚竹哥带大家了解下Amazon CodeWhisperer。

Amazon CodeWhisperer

1.1、开发常见痛点

  • 在开发过程中,编写样板代码是一个重复且乏味的任务
  • 开发人员需要在不熟悉的编程语言中进行编码时,语法错误和问题可能会成为瓶颈
  • 安全漏洞是软件开发中一个严重的问题,但往往很难及早发现和修复
  • 打字错误和典型错误会导致代码不正常工作或产生潜在的问题,给开发人员带来不必要的麻烦和调试时间

1.2、Amazon CodeWhisperer是什么

Amazon CodeWhisperer是一款强大的智能编程助手,它秉承着训练了数十亿行代码的经验。借助于其先进的算法和深度学习技术,CodeWhisperer能够以惊人的准确度和实时性为开发者们提供各种代码建议。

1.3、优势

  • 更快速地完成更多工作:CodeWhisperer通过快速生成准确的代码建议,帮助开发者在编码时节省大量的时间。它可以实时生成从代码片段到全函数的代码建议,并帮助开发者使用不熟悉的API进行构建,从而提高工作效率和生产力。
  • 自信地进行编码:CodeWhisperer可以标记或筛选与开源训练数据相似的代码建议,并提供相关开源项目的存储库URL和许可证信息。这使得开发者可以方便地查看和添加归因,促进了代码共享和合作。开发者可以使用这些代码建议来创建高质量的软件,而且可以放心地使用这些建议,因为它们都经过了专业训练和验证。
  • 增强代码安全性:CodeWhisperer能够扫描难以发现的漏洞,并给出修复建议。它遵循OWASP等安全标准,帮助开发者及时修复安全漏洞,提高软件的可靠性和稳定性。CodeWhisperer还可以检查代码中可能存在的漏洞,并给出相应的警告,帮助开发者在发布前修复漏洞和错误。
  • 提升开发人员工作效率:CodeWhisperer可以大大提高开发者的工作效率。根据生产力挑战赛的结果,在使用CodeWhisperer的情况下,参与者成功完成任务的可能性增加了27%,平均完成任务的速度提高了57%。开发团队可以减少在创建样板文件和重复代码模式上的时间,将更多时间花在构建优秀的软件上。
  • 支持多语言和多IDE:CodeWhisperer支持近15种编程语言,包括Python、Java、JavaScript、C++等。它可以与流行的IDE(如VS Code、IntelliJ IDEA)无缝集成,为开发者提供高效便捷的开发体验。开发者可以使用他们喜欢的环境来编写他们的代码,并且还可以轻松地在不同的项目中使用CodeWhisperer。
  • 可以即用即开,随时关闭:CodeWhisperer可以实现即用即开,开发者可以在需要的时候打开它,并在不需要的时候随时关闭。这使得开发者可以更好地控制他们的工作负载,而不必担心CodeWhisperer会导致其他问题。
  • 可以免费使用:CodeWhisperer可以免费使用,这对于个人程序员和小型团队来说是非常有吸引力的。它提供了一个低成本的方法,让开发者能够轻松地获得高质量的代码建议,而不必担心成本。
  • 可以支持学习和技能增长:CodeWhisperer可以帮助开发者学习新的编码技术和API。使用CodeWhisperer,开发者可以轻松地创建新的代码,并且可以获得有关如何改进他们的工作流程的建议。CodeWhisperer还可以帮助开发者提高他们的技能水平,因为它可以提供专业级的代码建议和建设性的反馈。
  • 可以提供灵活的输出选项:CodeWhisperer可以以多种格式提供代码建议,包括代码段、函数、类和整个项目等。开发者可以选择适合他们需求的输出选项,从而使CodeWhisperer更加灵活和适应性强。

适用场景

  • 编写样板代码:开发人员可以使用CodeWhisperer来快速生成样板代码。例如,只需输入"为ML数据创建预处理脚本的类",CodeWhisperer就能够生成整个预处理数据类的代码块,节省了编写样板代码的时间。
  • 使用不熟悉的语言进行编码:CodeWhisperer可以帮助开发人员在不熟悉的编程语言中进行编码。比如,一个新加入团队的Java用户可以借助CodeWhisperer轻松开始编写Python代码,而无需担心语法错误。
  • 检测代码中的安全漏洞:CodeWhisperer具备检测代码中安全漏洞的功能。开发人员可以在IDE中选择运行安全扫描,CodeWhisperer会提供有关安全问题的详细信息。这有助于开发人员及早发现并解决潜在的安全问题。
  • 消除打字错误和典型错误:CodeWhisperer利用人工智能技术,帮助开发人员消除打字错误和典型错误,从而提高代码的准确性。
  • 减少重复编码:CodeWhisperer通过推荐可能需要的后续代码片段,减少了重复编码的工作。开发人员可以更快速地编写代码,避免重复书写相似的代码段。
  • 其他常规任务和使用不熟悉的API场景:CodeWhisperer还可以帮助开发人员完成其他常规、耗时的无差别任务,比如编写读写文件、处理图像、编写单元测试等代码。它也适用于在使用不熟悉的API或SDK时构建示例代码。

  • 实战体验

安装

在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会向邮箱中发送⼀个验证码

去邮箱找到验证码,复制,下一步

设置密码,密码要求比较高

出现如图这个,就说明创建成功了。

实战1:

补全注释功能

可以根据前文补全注释,看效果还不错。不喜欢写注释人的福音。

实战2:

写了一个注释,想写个冒泡排序。自动帮我生成代码了

选择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]);

        }
    }

}

运行结果:

实战3:

实战1只是一个简单的排序算法,要求也不高。现在来升级下实验。输入一段话,大致内容要求是:求每次划动窗口的最大值。

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

 要求返回 滑动窗口中的最大值 。

选择insert code 

选择insert code 

最后生成完整的代码。

package com.xiaoxuzhu.csdn;

public class TestCodeWhisperer2 {

    /**
     * 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
     * <p>
     * 返回 滑动窗口中的最大值 。
     */
    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的理解能力还是很强的,能正确地理解虚竹哥的意思并生成对应的代码。

实战4:

leetcode中选一个难度级别比较高的算法题目,看ai能不能理解,并进行正确解答。

选一个动态规划里,困难级别的:

题目是:

给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

开始ai写代码

按提示内容,不断插入代码

最终生成代码:

跑一下结果,为2,是对的。

这样就够了吗?不!让leetcode来判断下生成的代码质量如何

复制代码到leetcode里,然后先运行下

过啦~

提交

击败100%~ 

此时此刻,有个BGM响起:无敌是多么,多么寂寞~

实战5:

写个小游戏,看下能不能上下文理解。

游戏规则:

写一个猜数字的游戏,从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准确地理解了虚竹哥的意图并生成了相应的代码。

此次的体验很愉快,也有收获。可以投入开发生产中,减少开发量,让我有更多时间投入更有价值的工作上。

大家也可以去体验体验,也欢迎找虚竹哥沟通分享心得。

我是虚竹哥,我们明天见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

火车头采集器python CHATGPT/AI改写插件使用教程!

大家好我是淘小白&#xff0c;关于火车头的AI改写插件的环境配置和使用教程&#xff0c;今天来给大家整理一下&#xff0c;请购买过的朋友&#xff0c;按照这个教程自行操作~ 1、规则&插件 这是我们拿到的演示规则和插件 2、配置环境 首先&#xff0c;要先安装Python&…

如何通过bat批处理实现快速生成文件目录,一键生成文件名和文件夹名目录

碰对了情人&#xff0c;相思一辈子。 具体方法步骤&#xff1a; 一、创建一个执行bat文件&#xff08;使用记事本即可&#xff09;&#xff1b; 1、新建一个txt文本空白记事本文件 2、复制以下内容进记事本内 dir/a/s/b>LIST.TXT &#xff08;其中LIST.TXT文件名是提取后将…

“益路同行”专访第0002期—张掖市汇仁爱心公益协会创始人谢建英

中国善网在本届&#xff08;第十届&#xff09;慈展会上特别推出了《益路同行》采访栏目&#xff0c;《益路同行》栏目旨在寻觅公益之路上同行者的故事&#xff0c;挖掘公益更深层次的内涵&#xff0c;探索新时代公益发展道路。希望公益企业、人物、故事被更多人看到&#xff0…

RFID服装工位管理提高生产管理效率

RFID服装工位管理是一种通过使用RFID电子标签来提高制造企业生产管理效率的方法&#xff0c;在传统的制造企业中&#xff0c;生产流程通常以单件为主&#xff0c;当生产环节繁复且工序众多时&#xff0c;容易出现各种问题。特别是在劳动密集型行业&#xff0c;如服装制造业&…

Mini Linux嵌入式设备服务器

Digi International推出了具有Digi Embedded Linux的Digi Connect ME 9210。Digi Embedded Linux是为在Digi嵌入式模块和微控制器上开发而优化的最新版本。高性能嵌入式开发服务器大约只有一对骰子大小&#xff0c;是嵌入式Linux上最小的。这使OEM可以在空间受限的设备中使用Li…

StarRocks数据导入

1、相关环境 Flink作为当前流行的流式计算框架&#xff0c;在对接StarRocks时&#xff0c;若直接使用JDBC的方式"流式"写入数据&#xff0c;对StarRocks是不友好的&#xff0c;StarRocks作为一款MVCC的数据库&#xff0c;其导入的核心思想还是"攒微批降频率&qu…

Unity把UGUI再World模式下显示到相机最前方

Unity把UGUI再World模式下显示到相机最前方 通过脚本修改Shader 再VR里有时候要把3D的UI显示到相机最前方&#xff0c;加个UI相机会坏事&#xff0c;可以通过修改unity_GUIZTestMode来解决。 测试用例 测试用例如下&#xff1a; 场景包含一个红色的盒子&#xff0c;一个UI…

十,从摄像机打印立方体的一个外表面

从摄像机是与主摄像机保持同样的投影矩阵&#xff0c;所以&#xff0c;不用单独设置。如果把漫游器还是在&#xff08;1&#xff0c;0,0)这个位置&#xff0c;各个从摄像机看向上下左右前后六个面&#xff0c;那么会出现什么现象呢&#xff1f;应该是x正轴打印出来&#xff0c;…

DataOps课程:DataOps实施,花更少的时间发现和纠正错误 | 内附视频

《DataOps实施》课程内容包括《数据之旅第一数据运营》《精益数据运营的四个阶段》《DataOps的流程及结论》。本文汲取课程精华要点&#xff0c;如需完整版可观看视频讲解&#xff0c;关注公众号回复关键字【第五课】&#xff0c;获取课程完整版文字内容。 课程完整版&#xff…

IT项目管理十大模版(三)

一、项目组成员表 要把项目组成员的名单都罗列出来&#xff0c;形成一个有效的团队&#xff1b;成员角色和职责要写清楚&#xff0c;职责分明、各司其职&#xff1b;领导审核并签字确认。 二、项目范围说明书 此表&#xff0c;包含了6个部分&#xff0c;基本情况、项目描述…

训练聊天机器人,改善客户体验

谈及对待客户&#xff0c;最重要的一点便是尊重他们&#xff0c;并尊重他们的时间。这意味着在与客户互动过程中&#xff0c;回应需及时有用&#xff0c;而且要赢得回头客尤是如此。社会约定俗成的期望是&#xff1a;客户能够全天候随时提出问题&#xff0c;并获得近乎即时的回…

终于有人能说清火爆全网的AIGC了 | 附赠试用

AIGC全称为AI Generated Content&#xff0c;直译为人工智能生产的内容&#xff0c;认为是继PGC、UGC之后的新型内容创作方式。也是现在市场最火的”AI“概念的延伸应用。 AIGC之以这么热门&#xff0c;主要因为其上手非常简单大大降低了创作门槛&#xff0c;只需用文字描述您想…

FPGA行业应用一:LED控制器

什么是LED控制器 LED控制器已经有很多年头了&#xff0c;应该是上世纪90年代就开始有了。它的主要构成是&#xff1a; 1&#xff1a;视频信号源——如 电脑&#xff0c;机机&#xff0c;DVD&#xff0c;U盘等 2&#xff1a;视频处理器——通过 HDMI/DVI/网口接收来自视频源的…

Tensorboard中常用的函数和类

常用函数 ①tf.summary.scalar 用于汇总标量数据,共有四个参数,格式如下: tf.summary.scalar(tags,values,collections None,name None) 例如:tf.summary.scalar(test,test) 以标量的形式显示变量test的变化。该函数一般用于表示损失值、准确率的变化情况。 ②tf.summary.h…

开利网络受邀参与生态合作伙伴和合控股“数利丰”品牌营销会议

近日&#xff0c;开利网络受邀出席生态合作伙伴“数利丰”品牌营销会议&#xff0c;就“数利丰”产品的技术能力和案例沉淀进行分享。 作为“数利丰”项目的技术支持方&#xff0c;开利网络创始人付立军在分享会上表示&#xff0c;现如今&#xff0c;每个企业都至少做过一套系统…

双翼邮件群发软件怎么用?怎么做邮件营销?

如何使用双翼邮件群发软件&#xff1f;营销邮件群发系统哪个好&#xff1f; 近年来&#xff0c;随着电子邮件在商业和个人通信中的普及&#xff0c;双翼邮件群发软件已经成为了一个不可或缺的工具。蜂邮EDM将深入探讨这一强大工具的使用方法&#xff0c;以及如何充分利用其崭新…

✔ ★ 算法基础笔记(Acwing)(六)—— 贪心【java版本】

贪心 一、 区间问题1. 区间选点2. 最大不相交区间数量3. 区间分组(用 堆top 代表区间 头头)POJ3614Sunscreen(优先队列贪心) 4. 区间覆盖 二、哈夫曼树1. 合并果子 三、排序不等式1. 排队打水 四、绝对值不等式货仓选址 五、推公式耍杂技的牛 一、 区间问题 1. 区间选点 原题…

爬虫代理请求转换selenium添加带有账密的socks5代理

爬虫代理请求转换selenium添加带有账密的socks5代理。 一、安装三方库 二、使用方法 1、在cmd命令行输入&#xff1a; 2、给selenium添加代理 最近因为工作需要&#xff0c;需要selenium添加带有账密的socks5代理&#xff0c;贴出一个可用的方法。 把带有账密的socks5代理&am…

Xshell安装使用教程~

简介 Xshell 是一个强大的安全终端模拟软件&#xff0c;它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以在Windows界面下用来访问远端不…

iOS 视频压缩 mov转mp4 码率

最近还是因为IM模块的功能&#xff0c;IOS录制MOV视频发送后&#xff0c;安卓端无法播放&#xff0c;迫不得已兼容将MOV视频转为MP4发送。 其中mov视频包括4K/24FPS、4K/30FPS、4K/60FPS、720p HD/30FPS、1080p HD/30FPS、1080p HD/60FPS&#xff01; 使用AVAssetExportSessi…