50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

挑战三大任务,Amazon Q 生成代码的能力到底如何?

  • 2023-08-24
    北京
  • 本文字数:1300 字

    阅读完需:约 4 分钟

挑战三大任务,Amazon Q 生成代码的能力到底如何?

活动推荐: #生成式 AI 先锋开发者集结令 #

免费体验编程神器,丰厚大奖等你来拿!👉🏻👉🏻https://jinshuju.net/f/rVuKYa


ChatGPT 火出圈之后,AI 大模型编程越来越多,虽然 AI 编码暂时无法完全替代程序员,但是时代变化、潮流趋势所向,大家没有必要过多焦虑,而是应该拥抱变化,拥抱趋势,尝试用 AI 辅助自己的编码,看是否可以得到帮助,本文试用了 Amazon 的 CodeWhisperer AI 编程工具,在这里做一个小小的总结。


CodeWhisperer 通过 AI 技术,可以自动分析代码库中的模式和常见用法,从而生成符合标准的代码片段,其旨在帮助开发人员节省时间和精力,提高开发者的工作效率。


当前 CodeWhisperer 支持集成到几种开发环境中,VS、Jetbrains、JupyterLab,Lamda 等,由于平时用 C++/Python/Go 比较多,因此本文使用 JetBrains 的 Clion 来测试 CodeWhisperer 生成 C++的能力,首先安装好 Clion(具体步骤网上找或者亚马逊官网指导书),进行 Clion 后,首先通过 tools 搜索安装 aws toolkit,安装好后启动就可以使用 CodeWhisperer 了,第一次启动时会生成一个验证码,链接到你的亚马逊账号进行授权,此处不细讲,按照提示操作即可



下面进入正题:


使用 CodeWhisperer 生成代码,需要添加注释,其会根据注释一行一行完成代码编写,并且会帮助你完成要编写代码的注释

任务一:

测试生成全部代码能力,主题完成一个 TCP Server 收发数据,下面图里是一步步的结果




最终完成的代码如下


生成过程并非像 ChatGPT 一样,一股脑的代码全部生成扔给你,需要开发同学一行一行的插入确认,这种情况也有好处,在于可以在开发过程中自己一行一行的确认正确性及问题,避免一大堆复杂代码重新费神的确认逻辑。


任务二:

推荐相应功能的开源库以及使用已集成的开源包进行代码生成测试,主题完成一个 SIP 消息处理函数,下面图片展示其完成过程和结果


(1)使用 osip2 解析 sip 消息,下面是生成的代码,基本符合预期



 (2) 期望重新推荐一个 sip 消息解析库,不知道是我已经集成了解析库还是还是什么其他原因,没有成功


可见 CodeWhisperer 对于 Github、Gitee 以及互联网上标准开源库是进行过训练的,可以读懂 oSip2 是一个很有名的 sip 协议栈,因此可直接使用其 API 根据注释生成可用代码


任务三:

基于已完成部分代码,根据注释生成补全代码,CodeWhisperer 也可以根据上下文和注释补齐代码的相应功能,建立一个资源分配函数(带一定的业务功能),完成一半的部分(>4),让 CodeWhisperer 完成剩下的部分(<4),下面展示结果




最终的结果



至此任务三测试完成,生成了基本可用的代码。


最后总结,CodeWhisperer 对于能够更快地编写代码还是有一定的帮助。


首先,在集成开源或者第三方不熟悉的代码库时,它可以为我节省大量的时间去学习和查阅 API 接口文档,让我能够专注于改进和测试。


其次,可以帮助我节省繁琐的重复性工作,如上面的 TCP Socket 处理。


当然,也期望可以后续可以生成整体代码段的方式,对于非复杂逻辑代码的场景其效率是更高的。


版权声明: 本文为 InfoQ 作者【Hanson】的原创文章。

原文链接:【https://xie.infoq.cn/article/386428468269729e334f2c134】。

本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。

2023-08-24 14:385559

评论

发布
暂无评论
发现更多内容

上海推动普惠金融顾问制度落地,金融服务云平台或成为普惠金融的服务中枢

易观分析

金融

面试突击91:MD5 加密安全吗?

王磊

Webpack构建速度优化

Geek_02d948

webpack

图像算法助力提效转转商品审核

转转技术团队

图像处理

zookeeper实现分布式锁

zarmnosaj

10月月更

Zebec 以 Layer2 的形式推出 Zebec Chain,流支付新时达来临了

小哈区块

数据中台前世今生二:从数据湖到大数据平台看数据应用需求发展

雨果

数据中台

【Vue】踩坑日记:Scoped下动画无效,曾经以为百利而无一害的Scoped,也有自己的限制

游坦之

前端 vue2 10月月更

Vue实现日期选择器

游坦之

前端 vue2 10月月更

【Java深入学习】线程状态

Geek_65222d

10月月更

搭建帮助中心无方法,Baklib帮你轻松解决

Baklib

在线协作文档实现团队工作协同!

Baklib

效率 协同办公 降低成本 在线协作文档 在线协作

NFT卡牌挖矿链游dapp系统开发

开发微hkkf5566

webpack高级配置

Geek_02d948

webpack

Spring Boot「08」设置和使用 Property

Samson

Java spring 学习笔记 spring-boot 10月月更

SAP | 认识数据元素和域

暮春零贰

SAP abap 10月月更

值得关注的5款低代码开发平台推荐!

优秀

低代码开发平台 低代码平台

【Vue】图片拉近、全屏背景实战经验总结

游坦之

前端 vue2 10月月更

ThreadLocal 源码分析

zarmnosaj

10月月更

通过以下7个步骤,建立出色的产品手册

Baklib

产品 客户忠诚度 产品手册 降低成本 客户满意

一文彻底读懂webpack常用配置

Geek_02d948

webpack

时序数据库及 IoTDB 介绍 | 小白教程文档(一)

Apache IoTDB

时序数据库 IoTDB Apache IoTDB 小白文档

Java 下数据业务逻辑开发技术 JOOQ 和 SPL

步尔斯特

数据中台前世今生(三):互联网下半场+数字化转型=数据中台

雨果

数据中台

如何通过cmd怎么打开计算机管理

Appleex

windows cmd

Wallys//routerboard,QCN9074,QUECTEL,RM500Q-GL,WiFi6ECard,802.11ax,IPQ6010,IPQ6000,IPQ6018

wallys-wifi6

IPQ6010 ipq6018 IPQ6000

企业团队知识库对企业团队来说有何意义?

Baklib

效率 知识管理 知识库 降低成本 在线协作

怎样设计好FAQ的页面更好地解决用户问题?

Baklib

产品 推广 FAQ 降低成本 客户满意

小程序助力本地生活服务

Geek_99967b

小程序

小程序引擎让app获得了什么样的能力

Geek_99967b

小程序

组装式App小程序化,能够加速企业效率式研发吗

Geek_99967b

小程序

挑战三大任务,Amazon Q 生成代码的能力到底如何?_亚马逊云科技_Hanson_InfoQ精选文章