**[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)** 是一款 AI 编码配套应用程序,可在 IDE 中生成整行代码和完整的函数代码建议,以帮助您更快地完成更多工作。
在本系列文章中,我们将收录广大开发者的实战心得,为您详细介绍 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的相关信息,帮助您获得更好的体验。敬请关注!
随着生成式 AI 逐渐深入各行各业,AI 大模型编程越来越多。虽然 AI 编码暂时无法完全替代程序员,但是利用生成式 AI 编程工具来辅助开发,已经是潮流趋势所向。
亚马逊云科技就推出了一款 AI 编程助手—— [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),通过 AI 技术,可以自动分析代码库中的模式和常见用法,从而生成符合标准的代码片段。其旨在帮助开发人员节省时间和精力,提高开发者的工作效率。
本文体验了 CodeWhisperer 编程工具,在这里为大家进行分享。另外,亚马逊云科技还在**明天(9月23日)14:00**为各位开发者准备了《**编程进化论——高效编程”离我们到底还有多远?**》的直播分享,由业界专家解码 CodeWhisperer 特点与优势,大家可以下滑至结尾了解详情!
当前 CodeWhisperer 支持集成到几种开发环境中,VS、Jetbrains、JupyterLab,Amazon Lamda 等。由于平时用 C+ + / Python/ Go 比较多,因此本文使用 JetBrains 的 Clion 来测试 CodeWhisperer 生成 C++ 的能力。
首先安装好 Clion(具体步骤可以参考亚马逊官网指导书)。进行 Clion 后,先通过 tools 搜索安装 Amazon Toolkit,安装好后启动就可以使用 CodeWhisperer 了。第一次启动时会生成一个验证码,链接到你的亚马逊账号进行授权,大家按照提示操作即可。
![image.png](https://dev-media.amazoncloud.cn/7219e627da1f411cba0f7c7abedf4c3b_image.png "image.png")
下面进入正题:
使用 CodeWhisperer 生成代码,需要添加注释。它会根据注释一行一行完成代码编写,并且会帮助你完成要编写代码的注释。
### **任务一**
**测试生成全部代码能力,主题完成一个 TCP Server 收发数据,下面图里是一步步的结果:**
![image.png](https://dev-media.amazoncloud.cn/81dc3f0784254ed2b0dca29e7f5b118c_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/292d23a7218d40839c26a22b46319e34_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/9c03633b47b84a119134f7eb9510c82f_image.png "image.png")
最终完成的代码如下:
![image.png](https://dev-media.amazoncloud.cn/442f5159289f499ea145c5b9d94a682d_image.png "image.png")
生成过程并非像 ChatGPT 一样,一股脑的代码全部“扔”给你,还是需要开发同学逐行插入确认的。这种方式的好处在于,可以在开发过程中自己一行行确认准确性及排查问题,从而避免在纷乱成堆的代码中重新确认逻辑。
### **任务二**
**推荐相应功能的开源库以及使用已集成的开源包进行代码生成测试,主题完成一个 SIP 消息处理函数,下面图片展示其完成过程和结果。**
(1)使用 osip2 解析 sip 消息,下面是生成的代码,基本符合预期:
![image.png](https://dev-media.amazoncloud.cn/23e44e896a6648218cc42b7507faaf2e_image.png "image.png")
(2)期望重新推荐一个 sip 消息解析库,不知道是已经集成了解析库还是还是什么其他原因,没有成功。
![image.png](https://dev-media.amazoncloud.cn/41ba810f7dea408e84dd8ecceffa7317_image.png "image.png")
可见 CodeWhisperer 对于 Github、Gitee 以及互联网上标准开源库是进行过训练的,可以读懂 oSip2 是一个很有名的 sip 协议栈,因此可直接使用其 API 根据注释生成可用代码。
### **任务三**
**基于已完成部分代码,根据注释生成补全代码,CodeWhisperer 也可以根据上下文和注释补齐代码的相应功能,建立一个资源分配函数(带一定的业务功能),完成一半的部分(>4),让 CodeWhisperer 完成剩下的部分(<4),下面展示结果:**
![image.png](https://dev-media.amazoncloud.cn/8e6e87f9547c4abf9c475cd59765b37e_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/d81866d610df4ddd82b6dfb54394f793_image.png "image.png")
最终的结果:
![image.png](https://dev-media.amazoncloud.cn/266dcb43fab0423c9415eddb5890f185_image.png "image.png")
至此任务三测试完成,生成了基本可用的代码。
总结来说,CodeWhisperer 对于能够更高效地编写代码有一定的帮助:
首先,在集成开源或者第三方不熟悉的代码库时,它可以为开发者们节省大量的时间去学习和查阅 API 接口文档,让大家能够专注于改进和测试;
其次,可以帮助开发者们节省繁琐的重复性工作,比如上面的 TCP Socket 处理。
希望 CodeWhisperer 未来可以生成整体代码段的方式,对于非复杂逻辑代码的场景,效率一定会更高。期待!
### **活动预告**
**编程进化论——高效编程”离我们到底还有多远?**
明天(9月23日)14:00,我们邀请到了**业界专家德勤管理咨询高级专家谭鹏,为您解码 CodeWhisperer 特点与优势,为开发者解析高效强大的输出原理**。您不仅能够与专家零距离交流,更有机会拿到亚马逊云科技精美周边礼品!
扫描二维码了解详情和观看直播。期待您的参与!
![image.png](https://dev-media.amazoncloud.cn/4dbbeaf40e3d45d4a324a507d1785c62_image.png "image.png")
![开发者尾巴.gif](https://dev-media.amazoncloud.cn/b981a806f87644ad93ffc7fad845e969_%E5%BC%80%E5%8F%91%E8%80%85%E5%B0%BE%E5%B7%B4.gif "开发者尾巴.gif")