初探亚马逊 AI 编程助手 CodeWhisperer

前言

4月18日,亚马逊云科技宣布,实时 AI 编程助手 Amazon CodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版(CodeWhisperer Individual)。Amazon CodeWhisperer 是一个通用的、由机器学习驱动的代码生成器,可实时为您提供代码建议。在编写代码时,CodeWhisperer 会根据你现有的代码和注释自动生成建议。从单行代码建议到完整的函数,它可为您提供各种大小和范围的个性化建议。同时,CodeWhisperer 还可以扫描您的代码以突出显示和定义安全问题。

CodeWhisperer 能够让开发者保持专注、高效,帮助他们快速、安全地编写代码,无需因离开 IDE 去研究某件事而中断流程。在为复杂且不断变化的环境创建代码时,开发者可以在他们最熟悉的 IDE(包括 Visual Studio Code、IntelliJ IDEA 等)中使用 CodeWhisperer 来提高工作效率并简化工作。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点 这里让它成为你的技术宝库!

本文旨在介绍一种在 IntelliJ IDEA 中安装 CodeWhisperer 插件的方法供大家参考学习。

安装环境

系统版本:macOS 13.3.1

软件版本:IntelliJ IDEA 2023.1.1 (Ultimate Edition)

安装 CodeWhisperer

3.1 打开 IntelliJ IDEA,点击左侧菜单栏中 “Plugins”。

图片

3.2 在顶部标签栏选择 “Marketplace”,搜索 “Amazon Toolkit” 并点击 “Install” 进行安装。

图片

图片

3.3 安装完成后重启 IDEA,在顶部标签栏选择 “Installed”,可以看到 “Amazon Toolkit” 已安装状态。

图片

激活 CodeWhisperer

4.1 打开或创建一个新的 Project,选择顶部菜单中 View/Tool Windows/Amazon Toolkit。

图片

4.2 选择 “Developer Tools” 标签页,双击 CodeWhisperer 下 “Start”。

图片

4.3 在弹出窗口中选择 “Use a personal email to sign up and sign in with Amazon Builder ID”,并点击 “Connect”。

图片

4.4 在弹出窗口中选择 “Open and Copy Code”。

图片

4.5 跳转网页后,在 Code 栏中粘贴代码信息(直接使用“粘贴”指令,或将上一步中代码手动输入)后,点击 “Next”。

图片

4.6 如之前已创建过 Amazon Builder ID,可选择 “Already have Amazon Builder ID?Sign in” 并登陆;如之前未创建过 Amazon Builder ID,可输入新的邮箱进行创建,输入邮箱地址,点击 “Next”。(本文以创建新 Amazon Builder ID 进行后续操作说明)

图片

4.7 输⼊自定义名称,点击 “Next”,CodeWhisperer 会向邮箱中发送⼀个验证码。

图片

4.8 打开邮箱,可以看到验证码,复制验证码,粘贴到网页输入框,点击 “Verify” 按钮。

图片

图片

4.9 设置密码,点击 “Create Amazon Builder ID”。

图片

4.10 点击页面 “Allow”。

图片

4.11 出现如下提示后,即表示 CodeWhisperer 已激活并可在 IDEA 中使用。

图片

4.12 返回 IDEA,在 Amazon Toolkit 视图中的 Developer Tools 中可以打开或关闭代码⽣成功能。

图片

使用 CodeWhisperer 生成代码

5.1 在 IDE 中编写代码或注释时,可以得到 CodeWhisperer 的实时建议。例如,编写选择序列的注释

图片

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

图片

5.3 可以点击 “Previous” 或 “Next” 切换不同的代码;点击 “Insert Code” 或 TAB 键确认代码。

图片

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

图片

后记

整体来看,CodeWhisperer 能够帮助开发者承担繁重的同质化工作,帮助检查代码安全,注释写的越精确,⽣成的代码质量越好。当然,CodeWhisperer ⽣成的代码并不总是正确或最优,需要视情况进⾏修改或优化。

文章来源:
https://dev.amazoncloud.cn/column/article/64f6fe882a1d01763eaa2d48?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

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

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

相关文章

Jenkins CLI二次开发工具类

使用Jenkins CLI进行二次开发 使用背景 公司自研CI/DI平台,借助JenkinsSonarQube进行代码质量管理。对接版本 Jenkins版本为:Version 2.428 SonarQube版本为:Community EditionVersion 10.2.1 (build 78527)技术选型 Java对接Jenkins有第…

arco-disign vue + vue3 封装一个“下拉多组单选组件”

手搓一个下拉框多组单选组件, 实现采用框架 arco-disign vue + vue3 组件采用:a-popover、a-input-tag、a-radio-group、a-radio 实现效果: 调用组件 <SelectGroupRadiov-model="searchModel.indicatorScreening":options="dict.indicatorScreening&qu…

USB协议学习(二)设备枚举过程分析

USB协议学习&#xff08;二&#xff09;设备枚举过程分析 笔者来聊聊设备枚举过程分析. 这里写自定义目录标题 USB协议学习&#xff08;二&#xff09;设备枚举过程分析USB设备运行过程USB设备枚举USB设备通信构成USB设备请求USB枚举过程分析如何改变文本的样式插入链接与图片如…

软硬件架构分层总结

一、前言 软件系统很多架构图我们经常看到是这样的三段 就是这三段就可以演化出很多层 二、硬件架构分层 硬件层&#xff0c;基本是计算机硬件的体系结构&#xff0c;包括硬盘设备&#xff0c;cpu&#xff0c;内存&#xff0c;控制器&#xff0c;运算器&#xff0c;寄存器&am…

Stream流式处理

Stream流式处理&#xff1a; 建立在Lambda表达式基础上的多数据处理技术。 可以对集合进行迭代、去重、筛选、排序、聚合等处理&#xff0c;极大的简化了代码量。 Stream常用方法 Stream流对象的五种创建方式 //基于数组 String[] arr {"a","b","c…

吉利高端品牌领克汽车携手体验家,重塑智能创新的汽车服务体验

浙江吉利控股集团&#xff08;以下简称“吉利集团”&#xff09;始建于1986年&#xff0c;1997年进入汽车行业&#xff0c;一直专注实业&#xff0c;专注技术创新和人才培养&#xff0c;坚定不移地推动企业转型升级和可持续发展。现资产总值超5100亿元&#xff0c;员工总数超过…

k8s集群镜像下载加gradana监控加elk日志收集加devops加秒杀项目

展示 1.配套资料2.devops 3.elk日志收集 4.grafana监控 5.dashboard![在这里插入图片描述](https://img-blog.csdnimg.cn/bf294f9fd98e4c038858a6bf5c34dbdc.png 目的 学习k8s来来回回折腾很久了&#xff0c;光搭个环境就能折腾几天。这次工作需要终于静下心来好好学习了一…

ES6中的Set集合与Map映射

文章目录 一、Set集合1.Set的基本使用2.Set的常见方法3.WeakSet使用4.WeakSet的应用 二、Map映射1.Map的基本使用2.Map的常见方法3.WeakMap使用4.WeakMap的应用 三、ES6的其它知识点说明 一、Set集合 1.Set的基本使用 在ES6之前&#xff0c;我们存储数据的结构主要有两种&…

v-for列表渲染

一、v-for迭代数组 <li v-for"(e,index) in emp" :key"e.id">编号{{index1}} 名字{{e.name}} 年龄{{e.age}} </li> e 是循环数组中的每个元素的别名index 是当前循环的下表&#xff0c;从0开始:key 的作用&#xff1a; 是为了给 Vue 一个提示…

网络协议--动态选路协议

10.1 引言 在前面各章中&#xff0c;我们讨论了静态选路。在配置接口时&#xff0c;以默认方式生成路由表项&#xff08;对于直接连接的接口&#xff09;&#xff0c;并通过route命令增加表项&#xff08;通常从系统自引导程序文件&#xff09;&#xff0c;或是通过ICMP重定向…

清除excel中换行符方法

1、选择要删除或替换换行符的单元格。 2、按 Ctrl H 以打开“查找和替换”对话框。 3、在“查找内容”栏中输入Ctrl J 或 Ctrl Enter 这时会出现一个闪烁的小点。如下图所示&#xff0c;然后点击全部替换即可。

Linux环境下C++配置Json库

一、准备好压缩包 1、下载Jsoncpp https://sourceforge.net/projects/jsoncpp/files/ 2、下载scons https://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download 二.配置 1.创建一个json文件夹&#xff0c;使用Xftp将压缩包导入文件夹 2.使用 …

memmove内存拷贝函数

目录 一、memmove内存拷贝函数 二、memmove与memcpy的区别 三、模拟实现memmove函数 一、memmove内存拷贝函数 1.头文件&#xff1a;string.h 2.函数原型&#xff1a;void *(void* destination , const void* source , size_t num) 3.函数功能&#xff1a;将源地址空间中的…

物联网_01_物理设备的网络接入

设备的网络接入及物理层使用到的传输协议 现在物理设备有两种接入方式,一种是直接接入另一种是网关接入 直接接入 给物理设备添加NB-IOT通信模组等设备使之具有直接接入网络的能力 网关接入 物理设备在本地组网后通过统一的网关接入到网络(ZigBee无线组网网关).网关是处在本地…

Flutter页面滑动回调处理解决方法

文章目录 TabBarViewTabBarView简介TabBarView详细介绍 TabBarView滑动时如何处理事务例子 PageControllerPageController介绍PageController 的详细介绍 TabBarView TabBarView简介 TabBarView 是 Flutter 中的一个用于显示选项卡视图的小部件。它通常与 TabBar 一起使用&am…

分布式事务 学习

分布式事务 关系型数据库事务&#xff08;本地事务&#xff09; 原子性&#xff1a;构成事务的所有操作&#xff0c;要么都执行完成&#xff0c;要么都不执行/一致性&#xff1a;在事务执行前后&#xff0c;数据库的一致性约束没有被破坏。隔离性&#xff1a;并发的两个事务的…

【Java小知识点】类加载器的区别

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理Java类加载器的区别&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1faf0;&#x1faf…

【SpringCloud微服务项目实战-mall4cloud项目(5)】——mall4cloud-leaf

mall4cloud-leaf 基于美团leaf的生成id服务 分布式id介绍具体代码及使用项目中的生成id模式具体代码分布式id生成使用 分布式id介绍 分布式ID&#xff08;Distributed ID&#xff09;是在分布式计算环境中生成的唯一标识符或标识号。在分布式系统中&#xff0c;通常需要唯一标…

Node学习笔记之path模块

path 模块提供了 操作路径 的功能&#xff0c;我们将介绍如下几个较为常用的几个 API&#xff1a; API 说明 path.resolve 拼接规范的绝对路径常用 path.sep 获取操作系统的路径分隔符 path.parse 解析路径并返回对象 path.basename 获取路径的基础名称 path.dirname…

【深度学习】数据集最常见的问题及其解决方案

简介 如果您还没有听过&#xff0c;请告诉您一个事实&#xff0c;作为一名数据科学家&#xff0c;您应该始终站在一个角落跟你说&#xff1a;“你的结果与你的数据一样好。” 尝试通过提高模型能力来弥补糟糕的数据是许多人会犯的错误。这相当于你因为原来的汽车使用了劣质汽…