> 文章作者:疯狂的驸马
## 一、CodeWhisperer 简介
CodeWhisperer 是亚⻢逊出品的一款基于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)的通用代码生成器,可实时提供代码建议。
在编写代码时,它会自动根据我们现有的代码和注释生成建议。从单行代码建议到完整的函数,它可为我们提供各种大小和范围的个性化建议。
CodeWhisperer 还可以扫描我们的代码以突出显示和定义安全问题。
![image.png](https://dev-media.amazoncloud.cn/0d5842dab71e435fafae10a5cdb9d5cb_image.png "image.png")
[*codewhispereropen in new window*](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail&continueFlag=dfb258fdbd1fb3efdcb4d090f78f424f):亚马逊官方出品
目前仅以插件的形式在[*VS Codeopen in new window*](https://code.visualstudio.com/?trk=cndc-detail)、[*Jetbrainsopen in new window*](https://code.visualstudio.com/?trk=cndc-detail)等IDE里面使用,如果想试一试可以用 VS Code,目前无限制免费使用免费,并且对环境要求不高,还轻量 ~
亚马逊在 2022 年 6 月发布了 CodeWhisperer 预览版,现在它支持 Python、Java 和 JavaScript。
![image.png](https://dev-media.amazoncloud.cn/d8aa7b95639b47fd9b432b4c4f077c2e_image.png "image.png")
CodeWhisperer 经过数十亿行代码的训练,由[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)提供支持,旨在实现相同的目标。无论我们是学生、新开发人员,还是经验丰富的专业人士,CodeWhisperer 都有助于我们提高工作效率。
其支持多种 IDE 和语言。要开始使用,我们只需安装合适的 [*Amazon IDE Toolkit*](https://aws.amazon.com/cn/developer/tools/?trk=cndc-detail),启用 CodeWhisperer 功能,输入我们的预览访问代码,然后开始键入:
![image.png](https://dev-media.amazoncloud.cn/89e16252f6a840f7bbc3ce3a6668cdc4_image.png "image.png")
CodeWhisperer 可以持续检查我们的代码和注释,并为我们提供语法正确的推荐。这些推荐根据您的编码风格和变量名称合成,而不仅仅是代码段。
CodeWhisperer 使用多个上下文线索来提供推荐,包括源代码中的光标位置、光标前面的代码、注释以及同一项目中其他文件中的代码。您可以按原样使用推荐,也可以根据需要对其进行改善和自定义。正如我之前所提到的,我们使用从开源存储库、内部 Amazon 存储库、API 文档和论坛中提取的数十亿行代码训练(并将继续训练)CodeWhisperer。
在亚马逊云科技博客的[*一篇文章*](https://aws.amazon.com/cn/blogs/compute/introducing-amazon-codewhisperer-in-the-aws-lambda-console-in-preview/?continueFlag=dfb258fdbd1fb3efdcb4d090f78f424f?trk=cndc-detail)中,Mark Richman 解释说,CodeWhisperer 的模型是在“包括 Amazon 开源代码在内的各种数据源”上训练的。有了这个语料库(显然[*确实存在*](https://www.techrepublic.com/article/aws-getting-better-at-open-source/?continueFlag=dfb258fdbd1fb3efdcb4d090f78f424f?trk=cndc-detail))完善 CodeWhisperer 的模型,编写从 S3 读取文件的代码应该是一个很好的测试用例。
在使用 CodeWhisperer(CW)时,我们需要写一个注释,描述我们希望函数去做什么。注释的描述性和准确性越高,系统就越能更好地推断出我们想要的逻辑。
Function to open an S3 file
比如注释以 Function 开头,让 CW 知道你想要创建一个函数。也就是说,你需要添加一个注释,作为给 CW 的提示。
CW 分析注释并生成一个函数的定义。此时,你可以在生成函数体之前修改函数定义。CW 还可能提供多种函数定义供你选择。
IntelliJ 集成 CodeWhisperer 的截图:
![image.png](https://dev-media.amazoncloud.cn/360c92b9bd3d46a2bc188cacfa15f246_image.png "image.png")
点击“插入代码”,你的函数就在注释的下方创建好了。注意 CodeWhisperer 不仅插入了代码,还创建了一个文档字符串。
```js
# Function to open an S3 file
def open_s3_file(filename):
"""
:param filename:
:return:
"""
s3 = boto3.resource('s3')
return s3.Object(bucket, filename).get()['Body'].read()
```
看起来不错!这段代码实现了你的注释所期望的功能,并且是在几秒钟内就生成了。
节省了查找 boto3 API 的时间,你只需要检查代码,确保语义正确。
接着看看提出更多要求时,会发生什么。
这有一个很有用的例子:写一个函数从 S3 的文件中返回前“n”行。
```js
# Function to get first n lines from a file in S3
def get_first_n_lines_from_s3(filename, n):
"""
Get the first n lines of a file in S3
:param filename:
:param n:
:return:
"""
lines = []
for line in open_s3_file(filename):
lines.append(line)
if len(lines) >= n:
break
return lines
```
真厉害!CodeWhisperer 使用了之前创建的辅助方法 open_s3_file,并生成了正确的函数。
在 CW 生成函数体之前,你可以修改参数名,提高代码的可读性。例如,如果我们输入:
```js
# Function to find common elements in lists
```
CW 会提示:
```js
def find_common_elements(list1, list2)
```
在生成函数体之前,我们可以修改函数定义,使其更具描述性:
```js
def find_common_elements(first, second)
```
如果我们接受它的函数定义,CodeWhisperer 将使用函数签名和注释来构建函数体。得到的函数将使用改进后的参数名。
```js
# Function to find common elements in lists
def find_common_elements(first, second):
return list(set(first) & set(second))
```
CodeWhisperer 不仅仅可以创建整个函数;它还可以在函数中插入代码片段,并在过程中推断相关变量。
```js
# reverse the list order
lines.reverse()
```
### 1.1 CodeWhisperer 是一个重要的生产力助推器
使用 CodeWhisperer,我能够更快地编写代码。到目前为止,最大的价值是 S3 示例所演示的功能。
如果我自己写代码,大部分时间将会用来查找 boto API 文档,以确保写出正确的调用。使用 CodeWhisperer,则只需三秒钟。
这让我想到了一段曾花了很多时间的烦人代码:给 CloudWatch 发送数据。让我们看看 CodeWhisperer 能否有所帮助,试试提供注释:“Function to emit a CloudWatch metric”。
```js
# Function to emit a cloudwatch metric
def put_metric_data(metric_name, metric_data):
"""
Put a metric data into cloudwatch
:param metric_name:
:param metric_data:
:return:
"""
cloudwatch = boto3.client('cloudwatch')
cloudwatch.put_metric_data(
Namespace='my_namespace',
MetricData=[
{
'MetricName': metric_name,
'Dimensions': [
{
'Name': 'string',
'Value': 'string'
},
],
'Unit': 'Seconds',
'Value': metric_data
},
]
)
```
非常有用!CW 为我节省了许多打字和查阅 API 文档的时间。
我有可能需要重构这段代码,但即使我从零开始编写它,第一步也要写出类似这样的原始逻辑。如今只花三秒钟,我节省了编写大量样板代码的时间,有了一个很好的自定义或重构的起点。
### 1.2 CodeWhisperer 的实际应用
我在 PyCharm 中安装了 CodeWhisperer ,并对其进行了测试。以下是一些示例,向您展示了它可以执行的操作。我想构建一个质数列表。我键入 # See if a number is pr。CodeWhisperer 完成此操作,然后我按下 TAB(实际键特定于每个 IDE)接受推荐:
![image.png](https://dev-media.amazoncloud.cn/d3fb7c296fdc4169af85a66056e62f1c_image.png "image.png")
在下一行,我按下 Alt+C(同样是 IDE 特定),然后我可以在一对函数定义之间进行选择。我接受第一个函数,CodeWhisperer 推荐函数体,以下是我所拥有的:
![image.png](https://dev-media.amazoncloud.cn/7728ca1c34c544e690f23898d93b5ab5_image.png "image.png")
我编写 for 语句,CodeWhisperer 推荐循环的主体:
![image.png](https://dev-media.amazoncloud.cn/97534ed619a049dc821a89b480209854_image.png "image.png")
CodeWhisperer 还可以帮助我编写用于访问各种亚马逊云科技服务的代码。我从 # create S3 bucket 开始,然后按 TAB 键完成剩余部分:
![image.png](https://dev-media.amazoncloud.cn/bf36052624b04e08b9eaf180e7390136_image.png "image.png")
看到这里,大家是不是觉得还不错,接下来教大家如何安装,很简单的\~
## 二、CodeWhisperer 安装教程
### 2.1 IntelliJ IDEA 安装 CodeWhisperer 插件
在 IDEA 中打开配置窗⼝,选择 Plugins,搜索"[*Amazon*](https://so.csdn.net/so/search?q=AWS&%3Bspm=1001.2101.3001.7020&continueFlag=dfb258fdbd1fb3efdcb4d090f78f424f?trk=cndc-detail) Toolkit",点击Install,点击OK按钮,如下图:
![image.png](https://dev-media.amazoncloud.cn/98fc78f1b3b3416ab42377eda910acfc_image.png "image.png")
安装完之后重启 IDEA,如下图:
![image.png](https://dev-media.amazoncloud.cn/b1a01cfa3e484dc4a47024957db69e3b_image.png "image.png")
打开 Amazon Toolkit 视图(菜单 View/Tool Windows/AWS Toolkit),点击"Developer Tools"tab⻚⾯,选择“CodeWhisperer/Start",如下图:
![image.png](https://dev-media.amazoncloud.cn/c970359e580e4d8dbec949b3685aa6dd_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/e676df65ad454e47b06d86ee567fd412_image.png "image.png")
弹出的窗⼝中选择“Use a personal email to sign up and sign in with Amazon Builder ID",点击“Connect”按钮,如下图:
![image.png](https://dev-media.amazoncloud.cn/a6e433bcc7ae438985c36fa4bd0cae65_image.png "image.png")
在弹出的窗⼝中,选择“Open and Copy Code”,如下图:
![image.png](https://dev-media.amazoncloud.cn/e2bdc70d19664618beb6218e2f853618_image.png "image.png")
此时会在浏览器中打开⼀个⻚⾯,按 ctrl-v 粘贴 code 值,点击“Next“,如下图:
![image.png](https://dev-media.amazoncloud.cn/332f5ec2cfc04d0194e670b28a1e72c8_image.png "image.png")
输⼊邮箱地址,点击"Next",如下图:
![image.png](https://dev-media.amazoncloud.cn/f9311572ef3d46fda2328d68353cdcdb_image.png "image.png")
输⼊名字,点击“Next”,CodeWhisperer会向邮箱中发送⼀个验证码,如下图:
![image.png](https://dev-media.amazoncloud.cn/9f8d533fe30440ab8d373eda86df8cc2_image.png "image.png")
打开邮箱,可以看到验证码,如下图:
![image.png](https://dev-media.amazoncloud.cn/110af4ad121f4a46aa67f46a0e4ef86d_image.png "image.png")
复制验证码,粘贴到输入框,点击“Verify”按钮,如下图:
![image.png](https://dev-media.amazoncloud.cn/25795280fc314a778ed5dc0ea6db5454_image.png "image.png")
设置密码,点击“Create AWS Builder ID“,如下图:
![image.png](https://dev-media.amazoncloud.cn/7c720f58546f4ced9837a55bd59df9f4_image.png "image.png")
在最后⼀个⻚⾯中点击“Allow”按钮,如下图:
![image.png](https://dev-media.amazoncloud.cn/def4102c4c364714acffcad61f98c2dc_image.png "image.png")
出现如下提示后,即表示注册 Amazon builder ID 成功,如下图:
![image.png](https://dev-media.amazoncloud.cn/1485f1ed5cd34e838d91516bdb837d17_image.png "image.png")
返回 IDEA,在 Amazon Toolkit 视图中的 Developer Tools 中可以打开或关闭代码⽣成功能,如下图:
![image.png](https://dev-media.amazoncloud.cn/024004ee69d04f02b3389743336edbe2_image.png "image.png")
此时,就可以愉快的使用 AI 编程了。
### 2.2 VSCode 安装 CodeWhisperer 插件
安装 Amazon Toolkit 插件,具体到 VS Code 侧边栏搜索并安装
![image.png](https://dev-media.amazoncloud.cn/1009f31cd2394dd7a864779f2ff8c09c_image.png "image.png")
侧边栏点击aws,>> DEVELIOPER TOOL >> CodeWhisper >> Start
![image.png](https://dev-media.amazoncloud.cn/9b6129436555434eb7ef4d3c33dc4065_image.png "image.png")
在下拉菜单中点击 Use a personal email to sign up and sign in with Amazon Builder ID
![image.png](https://dev-media.amazoncloud.cn/78cd7051fbae463fb3c9bd0a577a9ecd_image.png "image.png")
点击 Copy Code and Proceed,这将自动复制代码
![image.png](https://dev-media.amazoncloud.cn/65365482cc8e481a9953ab6938da8a81_image.png "image.png")
一般会提示外部网站打开提醒,选择打开
![image.png](https://dev-media.amazoncloud.cn/b7c1a0b989c14d68916d5f56a50c9c63_image.png "image.png")
5.打开网站后,输入点击 Copy Code and Proceed 时得到的代码,点击 Next
![image.png](https://dev-media.amazoncloud.cn/0e73220b02554df791c2fbe01ce22423_image.png "image.png")
6.输入自己的邮箱地址(同时登录你的邮箱等待验证码),点击 Next
![image.png](https://dev-media.amazoncloud.cn/8ee014c033724b55bf4363b8253f3f16_image.png "image.png")
7.重复之前步骤,但是由于已经在浏览器上登录成功了,所以步骤非常简单 粘贴代码后将会提示以下内容,点击 Allow 即可
![image.png](https://dev-media.amazoncloud.cn/11b319b3346f4f329543686954c50893_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/fabe9bb742494e7585e8af8f938d35ef_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/d6b7035c0fb84c688a199586d2d141a4_image.png "image.png")
等左下角的亚马逊云科技扩展颜色正常,对勾状态,说明连接成功
![image.png](https://dev-media.amazoncloud.cn/d0bf586dd359433cbaddb0f3755c0b24_image.png "image.png")
此时,就可以愉快的使用 AI 编程了。
### 2.3 PyCharm 安装 CodeWhisperer
1.打开 Pycharm 插件管理
在 JetBrains IDE 中,导航到设置菜单(在 macOS 上为⌘ + ,在 Windows 上为文件→设置),然后单击左侧菜单上的“插件”。
在菜单顶部,单击 Marketplace 并在搜索栏中键入 “Amazon Tookit”。然后点击安装。
![image.png](https://dev-media.amazoncloud.cn/e9b8f7ec79a24c3d80022c129840f010_image.png "image.png")
2.安装完成后重启 IDE
![image.png](https://dev-media.amazoncloud.cn/c6c8b8685d684e929f8b66a048dca325_image.png "image.png")
3.将 Pycharm 连接到亚马逊云科技(Amazon Build ID创建),重复之前步骤
IDE 重新启动后,您将看到一个新的 Amazon Toolkit 工具窗口。还可以通过 View -> Tool Windows -> Amazon Toolkit(视图 -< 工具窗口 -< Amazon Explorer)访问此窗口。
然后点击"Developer Tools"标签,选择“CodeWhisperer/Start"
![image.png](https://dev-media.amazoncloud.cn/8e77078eac334c5f8ca6214ecd85c5eb_image.png "image.png")
此时,就可以愉快的在 PyCharm 里使用 AI 编程了。
### 2.4 快捷键使用方法
全程需要按快捷键调用 Codewhisperer,主要的几个用法如下:
![image.png](https://dev-media.amazoncloud.cn/3e32654df0474949b6433614ca26cee3_image.png "image.png")
## 三、简单自动编码演示
回到 IDEA,看到如下界面,即表示注册并启动成功:
![image.png](https://dev-media.amazoncloud.cn/79249bf545ab4b14823ed292628a7365_image.png "image.png")
下面我们新建任意 Java 文件,看看他如何能够帮助我们自动生成代码。
### 3.1 单行代码自动补全
输入字符串 public。根据输入,CodeWhisperer 生成了建议列表
![image.png](https://dev-media.amazoncloud.cn/d2e4d376cd4242099a2175931be98871_image.png "image.png")
### 3.2 CodeWhisperer 生成完整代码
CodeWhisperer 可以根据编写的注释生成完整的函数。
![image.png](https://dev-media.amazoncloud.cn/9db2834a7a76453281947eda8f58836a_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/027a7aa3c949499c915164ef8681f819_image.png "image.png")
类似于 if/for/while 等代码块的生成。
![image.png](https://dev-media.amazoncloud.cn/aa45e9ab61cb44e297be3b9f9b77c91c_image.png "image.png")
大家如果看到这有疑问,可以接着看第四部分,有详细的测试说明。
### 3.3 其根据签名自动生成代码
![image.png](https://dev-media.amazoncloud.cn/fab1f2a1f20d44939367fbfe7bb98a01_image.png "image.png")
看到这里,大家应该有个简单的了解了,咱们接着往下看~
## 四、AI 编程代码实测及项目体验4.1 简单函数代码测试
首先,我先用中文注释了“写一个读取 csv 文件的函数” 回车后可以看到 CodeWhisperer 自动显示出来
![image.png](https://dev-media.amazoncloud.cn/d023a8a873e94307ac1ee4a23477f308_image.png "image.png")
按快捷键 Tab 确认键入后,接着回车后 CodeWhisperer 又自动生成了以下代码:
![image.png](https://dev-media.amazoncloud.cn/d331a6b6c63648a0bb2aebe32d5ec20c_image.png "image.png")
感觉这个 CodeWhisperer 自动生成的代码还不错,我选择了 Insert Code 键入使用。
紧接着用中文又注释了“创建一个简单的爬虫简单函数”
![image.png](https://dev-media.amazoncloud.cn/380b052544844e2e80cd9b9cebc11eb6_image.png "image.png")
在这选择了第三个自动代码,同样 Tab 键入。
接下来是注释“冒泡排序”后回车
![image.png](https://dev-media.amazoncloud.cn/51cbcfe891a7490f8a55342135be5cd9_image.png "image.png")
注释“选择排序”后回车
![image.png](https://dev-media.amazoncloud.cn/5241217b2c1d46fc8989e82f5bb4750a_image.png "image.png")
中文注释实测完后又对英文注释进行了测试,如下图所示:
![image.png](https://dev-media.amazoncloud.cn/e7348dc021854cd08971dec6753c7acb_image.png "image.png")
乘胜追击,又对创建和上传文件代码进行自动生成测试,同样得到了预期的效果。
![image.png](https://dev-media.amazoncloud.cn/835fd7eebd854fa7a76fa48c43466d45_image.png "image.png")
对于简单的函数实测让我感觉这个工具还挺不错的,因为可以根据自己想要的注释自动生成多个代码建议,这样不仅节省了大量的编码时间,而且多种代码建议可供选择,一定程度上提升了自己编写代码的质量。
### 4.2 代码安全扫描实测
接下来用 CodeWhisperer 去扫描我们代码中的安全漏洞,以下是运行按钮的位置
![image.png](https://dev-media.amazoncloud.cn/c1f0d49338ef49ff98348de41450b292_image.png "image.png")
打开我想扫描的文件,然后运行安全扫描
![image.png](https://dev-media.amazoncloud.cn/e1aa030091c14195a2653da88103d30c_image.png "image.png")
结果发现 CodeWhisperer 探测到该文件中有两个安全问题。 通过查看问题栏,点击事件定位到代码中,我们将鼠标移入到突出显示的代码,查看建议的措施,如下所示,问题指出在该例子中未加密的亚马逊云科技凭证被记录下来,是一个安全漏洞,它建议我们重写代码并且修复该漏洞。
![image.png](https://dev-media.amazoncloud.cn/f8bf6368e23044c1a0c53bd0ab1b4162_image.png "image.png")
同样查看第二个问题,CodeWhisperer 告诉我们讲应该把标识设置为 True。
![image.png](https://dev-media.amazoncloud.cn/71f864c1348d4c4b835ec428ab4669ba_image.png "image.png")
根据 CodeWhisperer 的建议,我进行了对应修改,两处安全问题修改如下:
![image.png](https://dev-media.amazoncloud.cn/eeb2351135c84042b0c93e72c272301e_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/1f28551a72474a17a99ad1dd33c406d8_image.png "image.png")
修改后重新扫描了文件,扫描完成,显示没找到问题。
![image.png](https://dev-media.amazoncloud.cn/58f81fbc5f3e4e659010c2a60876fc31_image.png "image.png")
对于安全扫描这项功能,我还是挺惊艳的,没想到能实测找出问题并给出对应的解决问题,因为这一点我对 CodeWhisperer 的好感又增加了。
### 4.3 代码引用跟踪功能实测
在这里想实现一个函数来创建一个 dynamo DB 表。 如下图所示进行了实际测试 “implement a function to create a dynamoDB table”
![image.png](https://dev-media.amazoncloud.cn/fba3a918d73a478481deabc848f1c9f9_image.png "image.png")
以下是 CodeWhisperer Reference Log 给出的建议:
![image.png](https://dev-media.amazoncloud.cn/f222433fdc6548839568817373fb1262_image.png "image.png")
根据代码建议标注被文件跟踪器标记为 MIT 许可证,其引用了 Apache-2.0 许可证下的代码。我选择接受了这些标记代码,然后发现 CodeWhisperer 自动记录了引用我需要的许可证信息,这样我就可以在我的代码上添加适当的许可证和归属信息。 这个功能实测完感觉也挺有用的,对代码涉及到的许可证和归属信息问题进行了有效解决。
### 4.4 计算机视觉工程项目实测
在对官网显示的几项功能测试完后,又在平时用到的实际项目上进行了测试,我选取了常用的一些 CV 检测模型,以下是 ShuffleNet 的实际测试效果。
首先,我在实例化训练数据集上,对缺失的代码段进行测试,看 CodeWhisperer 是否能联系上下文进行代码补全。
![image.png](https://dev-media.amazoncloud.cn/fc578c7b5dcb4f67a4bd049c10bc84c4_image.png "image.png")
进行回车操作后,CodeWhisperer 显现出来了所给的建议。
![image.png](https://dev-media.amazoncloud.cn/3c044f09d8fc4b418ecc2cfc97b75d0b_image.png "image.png")
目前看所给的建议正确,接着我又对冻结权重部分进行了测试,
![image.png](https://dev-media.amazoncloud.cn/95a68e555c594b4f928c45b76141fadc_image.png "image.png")
这回我又利用了 CodeWhisperer 的快捷键 ALT+C 进行了测试,
![image.png](https://dev-media.amazoncloud.cn/3f3ea694e6c84daab4e441da01df1424_image.png "image.png")
结果显示自动生成了 False 选项,测试到这里真的让我觉得这个工具是真的好,可以帮助我解决代码中遇到的很多问题。 在训练代码中测试完,我又接着对检测模型代码进行了测试,如下图所示在 transform 指向中为我建议了 img。
![image.png](https://dev-media.amazoncloud.cn/03191bc058634bc1b88521ad19a22d53_image.png "image.png")
最后,我对检测模型代码进行了运行测试,正确的检测出图片为蒲公英 dandelion。
![image.png](https://dev-media.amazoncloud.cn/ed5adab8aad54365adbd50ce6716a094_image.png "image.png")
总的来说,CodeWhisperer 辅助我完成了 CV 模型的代码编写和模型检测,达到了官网所展示的预期。接下来,我要让 CodeWhisperer 帮助我完成更复杂的任务了,哈哈
## 五、Amazon CodeWhisperer 实测体验总结
### 5.1 CodeWhisperer 可以帮助我成为一个更好的开发者吗?
通过以上的测试,我觉得它可以帮助我成为一个更好的开发者。
首先,它可以为我节省大量的时间和精力,让我能够专注于改进、重构和测试。
其次,它通过承担一些同质化的繁重工作,让我有机会成为一个更好的程序开发人员。
比如上面的测试的例子是 Amazon 工具(经过 Amazon 开源代码训练)能够表现出色的例子。
当然,在大多数开发人员需要花费很多时间的地方,比如编写领域相关的逻辑时,我又多测试了一下,让我们看看 CodeWhisperer 会不会也有帮助。
比如从 Python 文档中的数据类示例开始。
![image.png](https://dev-media.amazoncloud.cn/3814e1b2bf80463a83c1b5de09c6d9b0_image.png "image.png")
其实我想知道 CodeWhisperer 是否可以向这个类添加一个方法。让我们看看如果添加注释:" Function that return this item costs more than $10",会发生什么?
![image.png](https://dev-media.amazoncloud.cn/16f9e7b795d344e2ac79fe0ffb81047b_image.png "image.png")
结果是非常酷的。值得注意的是,CodeWhisperer 给函数起了一个直观的名字,并包含了对 self 的引用。
接着,让我们尝试用 CodeWhisperer 来做测试,看是否会触及它的极限。
![image.png](https://dev-media.amazoncloud.cn/c6d1d1f0011a4ff0847f375ed686e153_image.png "image.png")
在上面的代码中,我输入了注释,CW 自动完成了剩下的工作。 测试似乎是一个极好的证明 CW 可以节省时间的例子。我不需要浪费时间去想测试的值,也不用输入所有的成员变量和方法。
总的来说,可以帮助我成为一个更好的开发者,但是任何辅助工具都有利有弊,CodeWhisperer 也是才发布不久,通过测试我也想邀请大家去进行实际测试,可以对使用 CodeWhisperer 遇到的问题大家一起相互讨论,一起促进这个编程助手迭代和完善~