文章作者:樱小诺
### 一、AI 辅助编程
随着[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)和深度学习的兴起,人工智能已经迎来了爆发式的发展。[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)使得计算机能够通过数据学习和改进性能,而深度学习则基于神经网络模型实现了更高级别的模式识别和抽象能力。而随着人工智能技术的不断发展,AI 辅助编程也已经成为了一个备受关注的领域。传统的编程方式需要开发人员手动编写代码,这不仅耗时而且容易出错。而 AI 辅助编程则可以使用人工智能技术来自动或半自动地生成代码,从而提高编程效率和代码质量。此外,AI 辅助编程还可以帮助开发人员更好地理解和优化代码,提高软件的可维护性和可靠性。
<!--StartFragment-->
AI 编程使得机器能够具备智能的能力,能够自主地解决复杂问题,并与人类进行自然和智能的交互。AI 编程涉及到多个领域和技术,包括[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)、深度学习、自然语言处理、计算机视觉等,它们相互交叉融合,形成了强大的智能算法和技术体系。
<!--EndFragment-->
在AI辅助编程领域,Amazon Web Services 推出了一款基于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)的代码生成工具——[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),其经过数十亿行代码的训练,可以分析开发者在集成开发环境(IDE)中的注释和代码,用多个上下文线索来提供推荐,包括源代码中的光标位置、光标前面的代码、注释以及同一项目中其他文件中的代码,并根据其内容生成多种代码建议,支持 Python、Java 和 JavaScript 等15 种编程语言,还有支持 VS Code、IntelliJ IDEA、Amazon Cloud9、Amazon Lambda 控制台、JupyterLab 和 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 等集成式开发环境。
### 二、安装与配置
打开 Visual Studio Code 工具,点击左侧扩展栏-搜索 Amazon Toolkit 工具,进行安装
![26b8ff53355643dca77a91f8eb1afdc9.png](https://dev-media.amazoncloud.cn/afbbefa5373a4699ab5f8833a2f5bb41_26b8ff53355643dca77a91f8eb1afdc9.png "26b8ff53355643dca77a91f8eb1afdc9.png")
点击左侧的亚马逊云科技图标,登录或注册账号,然后点进亚马逊云科技图标之后选择“Connect to ......”,就会弹出一个对话框,框里有一串验证码,复制之后点击“Copy Code and Proceed”,导向登录页面,按照要求创建Builder ID,然后输入刚才复制的验证码,就可以了。
![97b27786d17540a1a6f1593df0cbaa1c.png](https://dev-media.amazoncloud.cn/de6d130ec6b146a1b3a105ee11655ac9_97b27786d17540a1a6f1593df0cbaa1c.png "97b27786d17540a1a6f1593df0cbaa1c.png")
### 三、使用教程
[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 提供了非常易用的快捷键,其中 ALT+C 要求给出代码建议,TAB 直接接受建议,方向键切换建议,ESC 取消建议:
<!--StartFragment-->
| | |
| ------- | ------- |
| 快捷键 | 功能 |
| ALT + C | 要求给出建议 |
| TAB | 接受建议 |
| ESC | 取消建议 |
| → | 选择下一个建议 |
| ← | 选择下一个建议 |
<!--EndFragment-->
在设置中,我们可以看到代码建议有两种使用方式:Auto-Suggestions 模式(程序自动判断何时生成代码),以及手动模式(MacOS 系统按下快捷键 Option+C、Windows 系统按下快捷键 Alt+C,按下快捷键之后在光标处生成代码)。
![a189f757a6d94ba59f699bbc1f2c1446.png](https://dev-media.amazoncloud.cn/cd79b9fd974e4279841fc446b5f6d09b_a189f757a6d94ba59f699bbc1f2c1446.png "a189f757a6d94ba59f699bbc1f2c1446.png")
比如这里我写了一个注释“堆排序”,按下 ALT+C,其为我提示了堆排序的基础实现:
![8bd6347e104b488488d1ab930d6364a1.png](https://dev-media.amazoncloud.cn/6981f367f2724cd5bc90ab8fdd3da99f_8bd6347e104b488488d1ab930d6364a1.png "8bd6347e104b488488d1ab930d6364a1.png")
按 TAB 接受建议后,再按下 ALT+C,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 会帮我们写 buildMaxHeap 建堆函数和 maxHeapify 调整堆的函数:
![34f641ae36e84895a6d169cd433c01af.png](https://dev-media.amazoncloud.cn/4e1f2b24eec94e05a8b3e60229f404da_34f641ae36e84895a6d169cd433c01af.png "34f641ae36e84895a6d169cd433c01af.png")
另外可以看到的是其还拥有安全检测功能,其可以快速扫描 Java、JavaScript 和 Python 项目中难以发现的漏洞,并获取代码建议以立即修复这些漏洞。遵循跟踪安全漏洞的最佳实践,例如开放全球应用程序安全项目 (OWASP) 概述的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。
![1238bda4b90448d7900dde8ae9c041c3.png](https://dev-media.amazoncloud.cn/94f159b15409495dacb7465e6197c5d2_1238bda4b90448d7900dde8ae9c041c3.png "1238bda4b90448d7900dde8ae9c041c3.png")
总的来说,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 在 AI 编程方面对我而言是够用的,而且可以说安全检查的功能是给我很大惊喜的,其提供的建议有助于我在早期阶段发现并解决问题。
### 四、体验心得
在使用 [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 编程工具的过程中,我明显感受到这些工具对提高编程效率和质量的作用,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能够根据上下文自动推荐代码片段,大大减少了手动输入代码的时间,同时也降低了因拼写错误导致的 bug,通过自动补全、错误检测等功能,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能够显著提高编程效率,另外,其处理速度和精度都非常高。即使在处理大型项目时,这些工具也能迅速给出建议,而且建议往往非常准确。
目前亚马逊也推出了云上探索实验室活动,本期的主题是:[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 码上实战——AI 编程助手用在生产实践有多爽?
![a99aecf39f06436cb5751d20112732a3.png](https://dev-media.amazoncloud.cn/f3dabb0119e14d65ab59c14b779f3cd5_a99aecf39f06436cb5751d20112732a3.png "a99aecf39f06436cb5751d20112732a3.png")
奖项多多,礼品丰富,既有多种亚马逊云科技精美周边,还有苹果(Apple)妙趣鼠标、漫步者(EDIFIER) 蓝牙耳机、蓝牙音箱,更有re:Invent 2023门票(拉斯维加斯)超级大奖等你来拿!
![3df0c7d59e9446208d3dfbb303d491fd.png](https://dev-media.amazoncloud.cn/64f187d4437a4bc08bf4e5fa499c68fa_3df0c7d59e9446208d3dfbb303d491fd.png "3df0c7d59e9446208d3dfbb303d491fd.png")