本系列文章,是广大开发者及媒体向我们投稿的 Amazon CodeWhisperer 评测及心得,与您分享实战体验,向您呈现更实用的信息。敬请关注!
作者:airmelt
随着 AI 编程在程序员中流行,越来越多的开源项目和大型公司也在代码生成领域开始发力。亚马逊云科技就推出了一款 AI 编程助手—— Amazon CodeWhisperer,并开放测试,开发者们可以在各种 IDE 上免费体验,享受 AI 带来的效率提升。
今天就和大家一起,从安装开始到代码补全,“沉浸式”体验一下 Amazon CodeWhisperer!
安装
安装 CodeWhisperer 非常简单,只需要在插件市场搜索 Amazon Toolkit 即可。以 VS Code 为例:
安装完成之后,侧边栏就会出现一个亚马逊云科技的图标,点击最下面的 DEVELOPER TOOLS 登陆,登陆完成之后点击 CodeWhisperer,选择“开始”就可以体验了。
代码补全体验
获取当前时间
首先我们尝试一个非常简单的例子:用 Python 获取当前时间:
# get current time
import time
def get_current_time():
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
左滑查看更多
实际上输入第一行的注释,代码助手就会提示输入 import time ,然后我们可以输入函数的定义 def ,剩下的都可以自动补充完整:
网页代码修改
首先我们搭了一个简单的网页,网页上面有两个正方形,分别是橘色和红色的,里面还有一些文字,比如 Test 和 Hello World:
Test
Test
Hello World!
左滑查看更多
现在,我们需要给 Test 这个正方形加上阴影,将*Hello World!*这个较长的字符串省略并在后面加上省略号。尝试给出注释:
也顺利的生成了预期的格式:
算法应用
首先我们尝试一下经典的快速排序算法,它很顺利地生成出来了:
基本上是满足了快速排序算法的要求。
接着我们挑战个难一点的,在字符串中找到最长的回文子串。这个问题可以用中心扩展法在 O(n^2) 的时间复杂度完成,最优的算法是使用马拉车算法(Manacher's Algorithm),其时间复杂度仅为 O(n) :
也很快得到了。不过实践是检验真理的唯一标准,我们来看看它能不能通过 LeetCode:
一次通过!我自己在写循环的部分很容易出错,而 CodeWhisperer 的代码补全很好地规避了错误的产生,还是十分强大的。
单元测试
在日常工作时,编写单元测试可以在一定程度上保证对代码的修改把握。我们可以对上面的马拉车算法进行单元测试的编写:
在 Python 中,我们一般用断言可以完成一些简单的单元测试,这里CodeWhisperer 给出了一些测试用例。
安全扫描
安全扫描(Security Scan) 是 Amazon CodeWhisperer 推出的一项崭新的功能。在测试阶段,每个月可以使用50次。我们可以尝试一下官网的例子。
出现了报错,从提示来看,应该是因为在一个大的文件夹进行了安全扫描。所以新建一个文件夹再尝试:
这次顺利地得到了结果。这里面应该有两个安全问题,当前检测到第一个;删除之后扫描,它也检测出了另一个安全问题:
Amazon CodeWhisperer 的安全扫描功能确实能够检测出一定的安全问题,这在开发过程中是非常实用且重要的。
结语
总的来说,Amazon CodeWhisperer 还是有不少亮点。安全检查是这次最与众不同的地方,整个功能是非常有自己的特色的。期待后续的功能更新和迭代!
星标不迷路,开发更极速!
关注后记得星标「亚马逊云开发者」
听说,点完下面4个按钮
就不会碰到bug了!