> 文章作者:大姚_54022960
### **前言**
敲完回车换行键后,自动提示代码,而且大概率还是正确的,这是一种什么样的编程体验,这必然是一种很“爽”的体验。这是最近两天,我在写代码时遇到的新奇事。
![image.png](https://dev-media.amazoncloud.cn/c9833c296602433fbcde48f6f43edbab_image.png "image.png")
仔细看了一下,原来是参加“亚马逊云科技【云上探索实验室】第三季”活动时,安装的 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 在发挥“神奇”作用。
活动网址:https://dev.amazoncloud.cn/experience/detail?id=64fe85015388453b9eee520e?trk=cndc-detail
本次探索活动的内容比较简单,包括安装和体验两部分。
![image.png](https://dev-media.amazoncloud.cn/2d6a62f821d34678bde1c5453d1fc4d8_image.png "image.png")
由于内容比较清晰,文档比较详尽(就是中文看起来像机翻的☺),组织者那也是相当给力,所以很快就完成了体验任务。当时也没有太在意,以为和其它一些人工智能的应用产品一样,体验过了就“过”了,没想到却是“码”上带来切切实实的帮助。结合体验和后续使用中的情况,分享点个人的感受。
##### 1、安装简单:
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 支持多种 IDE 。只需在 IDE 里,安装合适的 Amazon IDE Toolkit,启用 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 功能,就可以使用了。我是安装到 Visual Studio Code 中的使用的,安装过程比较简单,步骤清晰明了,提示清楚。大致如下:
![image.png](https://dev-media.amazoncloud.cn/961dc1628a4c49149d6d657a4c609256_image.png "image.png")
安装完成后,在 Visual Studio Code 的左下角出现下述内容,表示安装完成,可以开始奇妙的探索旅程了。
![image.png](https://dev-media.amazoncloud.cn/f7feed3d6d7f410d8d042dd22e733c9b_image.png "image.png")
##### 2、使用方便:
那是相当的方便,基本上是无感的。首次安装完成并启动后 ,以后 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 会随 IDE 自动启动。写上注释,敲下回车就可以等待它给出代码建议。甚至有时候,不给注释,它也可以根据上下文给出代码建议。程序员只需要使用几个简单的按键就可以接受或拒绝代码建议,非常方便和高效。
![image.png](https://dev-media.amazoncloud.cn/154b1f23822c4b6db44fedced093c024_image.png "image.png")
##### 3、功能强大:
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以提供代码建议, 还具有全面的代码扫描功能,可以检测难以发现的漏洞并提供修复建议。在这儿分享一个编程实践中代码建议的例子。
编程中我需要获取某个属性值,正准备去 API 手册查获取属性的方法,当敲完回车后,出现了一行推荐代码,虽然和实际 API 还有些出入,但基本意思有了,而且从上下文很准确的分析出目标。
![image.png](https://dev-media.amazoncloud.cn/358539d08d1d41488fdc46a4d1c8b9f3_image.png "image.png")
它是怎么做到的呢?原来,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 会使用多个上下文线索来提供推荐,比如注释、源代码中的光标位置、光标前面的代码、以及同一项目中其他文件中的代码。
我在写的代码,是个新出的库,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)
尚有如此表现。可见,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 学的还是很扎实的,数十亿行代码的语料库不是白学的。如果是亚马逊自己的产品或者是 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 熟悉的领域,相信它会有更好的表现。而且随着进一步的学习和提高,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 会有更优秀的表现,没有最好,只有更好。
##### 4、学习帮手:
经常需要帮助一些刚学编程的小朋友去检查代码,这是一种很不好的体验。新手的代码一般不规范,阅读起来很费劲,而且经常会搞出一些莫名其妙的问题。看到 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 生成的代码质量,于是我打算将 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 推荐给找我检查代码的新伙伴,让它帮助小伙伴们尽快提高编程能力。
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 不仅可以省掉使用检索工具去查找代码的时间,更重要的是 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 推荐的代码是真实可运行的,而且质量更好、更规范。“熟读唐诗三百首,不会作诗也会吟”,从一开始就接触和学习高质量代码,会让小伙伴快速提高编程能力,也会帮助小伙伴们养成良好的代码习惯和注释习惯,注释也更准确。
下面是 python 的冒泡排序,只输入了两行中文注释,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 就给出了代码建议。
![image.png](https://dev-media.amazoncloud.cn/05a1bf3d5ced4a208ed548c6231fb45c_image.png "image.png")
当我打算学习一门新的编程语言时,如果恰巧 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 也会,那我会选择使用 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 来帮助我,更快速的理解和掌握新语言的特点,写出高质量的代码。
当然,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是一个工具,在没有收到有效信息的情况,也会作出一些迷惑,但有趣的行为:
![image.png](https://dev-media.amazoncloud.cn/10c58a8261164552b2355fb5604e8786_image.png "image.png")
### 结语
总得说来,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是一个很不错的生产力工具,一个能理解自然语言,“读”的懂代码和注释,并且能转换成正确代码的“大聪明,机灵鬼”谁不爱呢,希望 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 越来越智能!!!
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 目前支持十几种编程语言,包括 Java, Python, JavaScript, TypeScript, C#, Go, Ruby, Rust, Scala, Kotlin, PHP, C, C++, Shell, and SQL。同时支持目前主流的开发工具,包括 VS Code、IntelliJ IDEA、PyCharm 等。
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 不仅可以提供相关的代码建议,从而加快代码开发速度;还具有全面的代码扫描功能,可以检测难以发现的漏洞并提供修复建议(代码安全扫描目前仅支持 Python、Java 和 JavaScript)。
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 当前针对个人用户提供免费服务,可以提供不限次数的代码建议和生成代码的功能,以及每日最多的 50 次代码安全漏洞扫描功能。支持中、英文输入。官方还提供了大量的体验例程。感兴趣的小伙伴可以上手体验一把!!!