> 本系列文章,是广大开发者及媒体向我们投稿的 **[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)** 评测及心得,与您分享实战体验,向您呈现更实用的信息。敬请关注!
***作者**:我不是码神*
随着今年 AI 技术的大火,越来越多的领域正在接受和利用这项强大的科技,以实现更高效、更智能的工作方式。在软件开发领域,AI 技术更是为我们的工作带来了前所未有的变革;从自动代码生成到智能编程助手,AI 正在逐步改变开发者的工作方式,提高开发效率和代码质量。
对于程序员传统的开发来说,完成一些业务逻辑代码或者特定代码,需要自己从 0 手动去敲代码、查 Bug、找思路、做优化,这个过程会需要耗费较多的时间和精力来完成。但是在今天,时代已经发生了变革。
**亚马逊云科技推出了一款前沿的 AI 编程助手——[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)**。这款工具利用了先进的深度学习技术,通过训练几十亿行代码,能够快速理解开发者的需求,提供即时的、强大的代码建议和错误检测,使开发者能够更快、更安全地构建应用程序。
为了大家更好地了解和掌握 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),在本文中,我将带你手把手沉浸式体验一下 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的魔力和强大之处!
![image.png](https://dev-media.amazoncloud.cn/5017c10cd8ca4c96b029ea0624c9150f_image.png "image.png")
### **01 Amazon CodeWhisperer 功能概览**
可能有些小伙伴对 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的具体的能力还不太清楚,这里先给大家详细介绍一下 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 拥有的一些实用和强大功能。用上这些功能,再也不怕被“卷”开发效率了!
#### **1.1 强大的代码建议**
[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是基于数十亿行代码训练而成的,所以它能够理解用自然语言编写的各种代码,并且可以实时地生成多个代码建议来提高开发人员的工作效率。该服务直接在集成式开发环境(IDE)的代码编辑器中提供针对完整函数和逻辑代码块(通常由多达 10–15 行代码组成)的建议。
并且不用担心它生成的代码不符合你的代码风格,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 将学习你的代码写法与风格,遵循你的设定的风格和命名规则。
#### **1.2 支持多种语言与 IDE**
在公司开发中,可能每个程序员们开发的语言或者 IDE 都是不大一样的,但是请放心,目前市面上主流的各类开发语言,例如 Python、Java、Go、Rust、PHP、C++、C、JavaScript、TypeScript 等等都是支持的!并且支持各种主流 IDE 工具,IDEA、Pycharm、VS Code 等等这些,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 都支持。
还有的朋友可能会说,如果是 SQL Boy 呢?能用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 吗?我的回答是,那是必须的!
#### **1.3 安全扫描**
在写完代码之后,可以使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 帮助我们进行代码的安全扫描,它将帮助我们分析出代码漏洞,并且会针对业务代码中的漏洞提出更改优化建议与代码。这个功能很实用,能够帮助我们排除不必要的安全隐患。
### **02 沉浸式体验使用 Amazon CodeWhisperer 实战开发代码**
相信大家看到这里已经很期待 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的实战表现了。我将为大家展示下 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是如何智能地帮助开发者们在日常生活中,提高学习与工作效率的!
首先,我们使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 来帮助快速构建一些常见算法及代码。在这里我选择 Python 语言。
#### **2.1 Pycharm 中快速导入 Amazon CodeWhisperer**
在 Pycharm 的设置 Settings 中,找到插件,然后搜索 “Amazon Toolkit”。点击 Install,等待下载完成后,重启 Pycharm 即可。
![image.png](https://dev-media.amazoncloud.cn/2da54b4ed9654065a59a220ad2121654_image.png "image.png")
然后我们在插件中进一步处理,使用个人亚马逊云科技账号去使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)。
![image.png](https://dev-media.amazoncloud.cn/596c3553df394c8db67a6c79865a3b3b_image.png "image.png")
我们需要将这个代码贴进来进行验证,并根据后续的操作进行邮箱注册创建 Amazon Builder 账号即可。
![image.png](https://dev-media.amazoncloud.cn/ccaa6f08b1314adab753e4b6fe0346de_image.png "image.png")
一切就绪之后会提出弹窗:
![image.png](https://dev-media.amazoncloud.cn/cb90de4b0c4a42b48a7a89feb618745e_image.png "image.png")
当在 Pycharm 中出现如下界面之后,就代表能够顺利使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 了。
![image.png](https://dev-media.amazoncloud.cn/45ad3df3116c471fa705fe27325ce8ae_image.png "image.png")
话不多说,开始用起来吧!
#### **2.2 使用 Amazon CodeWhisperer 快速构建 Python 代码**
我们先来使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 写一个简单的冒泡排序试试效果。首先,输入我们的注释,这样 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 就知道要干什么了;然后我们输入 import,就可以看到 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 自动帮我们补全了 random 函数。
![image.png](https://dev-media.amazoncloud.cn/571084d843114b538eb09cb3fc166cf3_image.png "image.png")
看到上面这个图,或许你会以为 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 只是简单补齐一行代码,千万别小看它了,接着往下看:
![image.png](https://dev-media.amazoncloud.cn/a9275bb2e43446c7833f741e6b1a135b_image.png "image.png")
不单单只是那一行,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以直接帮我们补完所有实现代码!
这里我们选择了方案 2 中的代码补全,然后当输入符到达代码最后一行时,新的一行就会自动跳出:
![image.png](https://dev-media.amazoncloud.cn/7d114954f09f4795bea0a7431ca877f0_image.png "image.png")
也就是 print(a\[i],end = ' ') 这一行是在我没有给出任何指令的情况下,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 自动提示是否需要补充。如果需要,只需按下 Tab 回车键或者鼠标点击 Insert Code 按钮即可。
与其他的 AI 代码助手不同的是,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是真正能够进行“预判式”的辅助你写代码,并且最开始的一切只是“源于”一个不起眼的小注释,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 通过这个注释已经帮我们算好了接下来 2-3 个步骤。是不是很高效?
测试了一下,使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 写冒泡排序的时间,只需要按下三次 Tab 键即可,大概是 2s 的时间!如果按正常编写的速度,只使用 Pycharm 自带的代码 Tab 补写,就算手速再快,也需要大概 15-20s 左右。2s 相比于 20s,是近乎 10 倍的时间开销差距。[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是真正意义上做到了帮助开发者节省时间,**用户体验感 Max!**
除了上面突出的“**预判式”速度优势外**,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 不仅仅只是提供一种代码思路,而是提供了三种以上的代码建议,能够让我们有多种选择。
很明显,我们能够根据具体代码的开发需求以及个人习惯进行选择,可以说是把**个性化体验拉满了**。简单快速易上手,难度一点都没有,还不快速速用上 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)?
#### **2.3 Amazon CodeWhisperer 支持各种领域方向的代码编写**
可能有开发者朋友会觉得,上面举的例子太简单了,还是对 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) “超级魔力”看的不过瘾。那我们来点“高质量”的“狠货”一起试试吧!
”狠货“的情况是这样:前两天,一个还在读研的同学在打全国研究生数学建模竞赛问我,如何用 Python 写一些高效的数学算法模型,例如二维马尔科夫链这种。我当时查了很多资料,东拼西凑给同学发了一份二维马尔科夫链算法模型的代码。只能说短短三四十行的代码至少花了我两三个小时,而且做的很难受,很心累。
而如今,我用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 来试试看看需要多久,或者看看写出算法模型的难度。
首先,还是按照上面一样写个注释,让 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 明白我要做什么。
可以看到,如下图,我只是简单输入了 import math,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 就已经帮我补全了其他所需要的常见数学计算包。
![image.png](https://dev-media.amazoncloud.cn/3631d6656f524aba802b13c7c76f4571_image.png "image.png")
下一步,我继续在注释中写明我需要做到哪些事情。比方说我想继续写一个状态转移方程,用来求马尔科夫链模型的概率矩阵。
![image.png](https://dev-media.amazoncloud.cn/2fd258475a334478a8abc89006951b2f_image.png "image.png")
可以看到,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 直接提供好了一个初始矩阵给我,非常的方便。
我们再进一步提出要求,注释中写清楚即可。
![image.png](https://dev-media.amazoncloud.cn/5416334bb78c44d1a7483c2e7f7e8e1f_image.png "image.png")
补全之后,下一步 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 又根据新的注释帮我进行了代码建议,不仅十分专业,且代码风格看起来赏心悦目,非常整齐和清爽。
![image.png](https://dev-media.amazoncloud.cn/7560350d6fae4720ad5fc8eb3dc5253d_image.png "image.png")
然后我们简单对状态矩阵进行判断返回即可。根据 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的代码建议补全如下。
![image.png](https://dev-media.amazoncloud.cn/295eb3d6c3034be2843175ea8cbe6024_image.png "image.png")
短短三五分钟,它就能够大概地把这种算法模型的架构搭出来,省去了很多不必要的麻烦。这说明,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是真的能够覆盖很多场景,就连高级的数学知识、数据科学类方面的代码,也是能够进行补全编写的。在简单易上手的基础上,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) **主打的就是一个全能,能够覆盖多领域多方向需求**。
#### **2.4 Amazon CodeWhisperer 的安全扫描功能**
我找了一份研究生数学建模的参考示例代码,按照惯例,参考示例代码应该是没有问题的。我们一起看看 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的安全扫描会不会提出什么安全漏洞建议:
![image.png](https://dev-media.amazoncloud.cn/972679ee703b43eea41647a10fb14ea7_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/143cdb9ab7ed4ac3894aebd2f92fdaea_image.png "image.png")
结果显示,扫描一切正常,说明这份参考示例代码是没有问题的,符合预期。
![image.png](https://dev-media.amazoncloud.cn/fe55223c8df14c86a1da04ddb3b8ebfc_image.png "image.png")
### **03 Amazon CodeWhisperer 总结**
通过上面的讲解和实践,相信各位开发者朋友肯定很心动了。还等什么,赶紧用起来吧!
总结一下 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的优点:
* **1、对小白友好,不存在什么引入难度**。大家可以看到 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 导入及使用大概两分钟就能操作完,十分便捷,不需要什么时间。
* **2、上手简单**。其实使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 就几个快捷键,Tab 这种,使用起来也是完全没有任何的难度。
* **3、覆盖面广,功能全面**。可以看到,对于一些高级数学知识,它也能够很快的给出代码建议。这一点非常实用,因为在开发中我们会遇到各种各样的问题与需求,代码助手的全面性决定了是否能够帮助更多的开发者。所以我觉得 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是非常优秀的,功能全面无死角。
* **4、维护了代码开发安全**。可能很多刚工作几年的开发者,对于代码安全方面并不是非常有经验,但 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 刚好就能够有效识别和修复潜在的安全漏洞,这是非常重要的一个功能。
综上所述,我觉得 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是一款各方面都非常不错的 AI 代码助手!
本文为「**云上探索实验室**」的作品之一。点击[**这里**](https://mp.weixin.qq.com/mp/appmsgalbum?\\__biz=Mzg4NjU5NDUxNg==\\&action=getalbum\\&album_id=3115498022272778242\\&token=1831860529\\&lang=zh_CN#wechat_redirect**)查看更多 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 极客心得!
![开发者尾巴.gif](https://dev-media.amazoncloud.cn/aacc94d07c904751a6188cc940aadedb_%E5%BC%80%E5%8F%91%E8%80%85%E5%B0%BE%E5%B7%B4.gif "开发者尾巴.gif")