文章作者:楚留香不留香
### 1、Amazon Toolkit 简介:
自动生成代码插件(类似于 copilot)
Amazon Toolkit 是亚马逊推出的一款插件,能够帮助用户快速开发、调试和部署基于 Amazon Web Services 的应用。它为开发者提供了一个集成开发环境(IDE),可用于在 IDE 中直接访问亚马逊云科技服务。Amazon Toolkit 支持多种主流的 IDE,包括 Visual Studio、Eclipse 和 PyCharm 等。通过 Amazon Toolkit,开发者可以方便地创建、调试和部署亚马逊云科技应用,提高开发效率。
目前已支持近10多种变种语言:Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、 Kotlin、C、C++、Shell 脚本、SQL 和 Scala,以及主流的 IDE 开发工具:包括 VS Code、IntelliJ IDEA 和 Amazon Cloud9。
**简单来说,在编写代码时,它会自动根据您现有的代码和注释生成建议。从单行代码建议到完整的函数,它可为您提供各种大小和范围的个性化建议。重点是目前对个人是免费的!!**
<!--StartFragment-->
### 2、首先你要安装 Amazon Toolkit 插件 并运行(安装放在最后再说)
<!--EndFragment-->
![image.png](https://dev-media.amazoncloud.cn/dc423a857c1546959e327b897a0f3c73_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/36683d38f0794f929cc15814eca53353_image.png "image.png")
<!--StartFragment-->
### 3、在 JavaScript 中的简单示例
**第一种方法:注释补全代码**
![image.png](https://dev-media.amazoncloud.cn/7986254b58724668b3c2fdd21da01450_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
亚马逊云科技会根据代码注释自动补全代码,写完注释后,需要**回车键**触发代码提示功能。(如果用中文注释可能会出现乱码,英文好的同学可以用英文注释)
此时代码只是提示状态,需要按 **tab 键** 让代码补全。
<!--EndFragment-->
![image.png](https://dev-media.amazoncloud.cn/181d5836f3784a2f966325c3a4d3cb51_image.png "image.png")
<!--StartFragment-->
这里有一个缺点就是,按完 tab 键后,需要再按一次回车键触发下一次的代码提示。往下皆是如此。需要不断的重复 按 tab 键 和空格键 来实现代码的补全功能。
![image.png](https://dev-media.amazoncloud.cn/84a8eef69350419cba9a8c8da252dd30_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
最终就能实现,数组去重的功能了。(不知道大家发现没有,它用的方法也是代码量最少的写法,至少我是第一次见这种去重方法)
数组去重并排序
![image.png](https://dev-media.amazoncloud.cn/cebad6097e0e44339b2c5b1948d7a012_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
数组去重排序,并兼容 ie 浏览器(有多余的代码 ,尴尬...,可能是注释语句稍微难以理解)
![image.png](https://dev-media.amazoncloud.cn/89d4b6d4efd8448386bc51f2ade56b9d_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
**第二种方法:根据上下文补全代码**
<!--EndFragment-->
![image.png](https://dev-media.amazoncloud.cn/1a6187fb724942e9b101b4b3600c04c7_image.png "image.png")
<!--StartFragment-->
### 4、从 vscode 安装 Amazon Toolkit插件,并注册
**第一步**,从 vscode 扩展安装完 Amazon Toolkit 插件后,应该是这样的界面,选择第二个
![image.png](https://dev-media.amazoncloud.cn/cbebc255e3b7422f98cf07861389f4a0_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
**第二步**,然后点击右边的蓝色按钮,意思为打开网址并且复制一串类似于注册码的东西(需要注册亚马逊云科技账号才能使用该插件)
**第三步**,进入网站,复制刚才的注册码,点击 next
![image.png](https://dev-media.amazoncloud.cn/895a1ff4aa884c74884e682a9e330468_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
**第四步**,然后会让你填写邮箱,邮箱收到的验证码。之后会让你填写密码(**设置密码时需要同时具备大小写字母+数字+特殊符号**)
![image.png](https://dev-media.amazoncloud.cn/1dd715a9cc5942548750aceb3109b65f_image.png "image.png")
<!--EndFragment-->
![image.png](https://dev-media.amazoncloud.cn/58d7a800102a4e679c47edfe9d8942d2_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/27cecec7ee08491297acb22db49e260c_image.png "image.png")
<!--StartFragment-->
填完之后就完事了,然后出现这个界面
![image.png](https://dev-media.amazoncloud.cn/3e33a50a2e0c402c877a214647736f96_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
然后一直点继续即可。
![image.png](https://dev-media.amazoncloud.cn/ae85dfc261f9473a89a80170a9a7afb2_image.png "image.png")
<!--EndFragment-->
<!--StartFragment-->
出现这个代表成功了。
**第五步**,返回 vscode 出现下面图片内容,就表示安装成功啦。
![image.png](https://dev-media.amazoncloud.cn/a6782cad916e48539fb7ddf97565dbf7_image.png "image.png")
<!--EndFragment-->
### 5、最后总结
我所演示的 Amazon toolkit 插件的效果,只是冰山一角,这款插件相对于前端来说,作用相对较小,毕竟现在前端开发,多数用的都是 react,vue 等框架。Amazon toolkit 目前并不支持 vue,react 代码的自动生成。但是对应后端语言来说,作用性可能会较大一些。
**不足之处**:
1、相较前端工程师,不支持 vue,react 框架是很大的劣势。(毕竟现在国内前端开发多数用的都是框架加组件库开发模式)
2、有时候会有中文乱码的问题
3、每次代码提示只有一两行,需要多次点击 tab 键和空格键,实现代码补全的功能。
4、稍微难一点的需求,可能会理解不了
![image.png](https://dev-media.amazoncloud.cn/be232b84665c428a9c70a5b5ed208a37_image.png "image.png")
<!--StartFragment-->
整体而言这款插件确实能够提高敲代码的效率,但是更适合辅助编程入门的小白,应用到项目中还是有一些难度,毕竟万事开头难,希望未来这款插件能做的更好。
Amazon Toolkit 官方网址:[AI 代码生成器 - Amazon CodeWhisperer - Amazon](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail "AI 代码生成器 - Amazon CodeWhisperer - AWS" )
<!--EndFragment-->