写点什么

使用 Amazon Q Developer 作为 AI 编码助手,重新构想软件开发

  • 2023-11-28
    北京
  • 本文字数:2435 字

    阅读完需:约 8 分钟

大小:1.14M时长:06:39
使用 Amazon Q Developer 作为 AI 编码助手,重新构想软件开发

在 Amazon CodeWhisperer 正式发布后,许多客户都已经使用它来简化和精简其软件开发方式。CodeWhisperer 使用由根基模型提供支持的生成式人工智能来理解代码的语义和上下文,并提供相关且有用的建议。它有助于更快、更安全地构建应用程序,并且可以在不同层面提供帮助,从小建议到编写完整的函数和单元测试,帮助将复杂的问题分解为更简单的任务。


想象一下,您想提高代码测试覆盖范围或为应用程序实施细粒度的授权模型。当您开始编写代码时,CodeWhisperer 将在后台运行。它可以理解您的注释和现有代码,提供从代码段到整个函数或类的实时建议。这种即时帮助会根据您的流程进行调整,减少了在搜索解决方案或语法提示时进行上下文切换的需要。在开发过程中,使用编码助手可以提高专注度和工作效率。


当您遇到不熟悉的 API 时,CodeWhisperer 可以为您提供相关的代码建议,从而加快您的工作速度。此外,CodeWhisperer 还具有全面的代码扫描功能,可以检测难以发现的漏洞并提供修复建议。这与全球开放应用程序安全项目(OWASP)概述的最佳实践一致。这不仅使编码更高效、更安全,还让工作质量更有保证。


CodeWhisperer 还可以标记类似于开源训练数据的代码建议,并标记和删除可能被认为有偏见或不公平的有问题的代码。它为您提供相关开源项目的存储库 URL 和许可证,使您可以更轻松地查看它们并在必要时添加归因。


下面提供了几个 CodeWhisperer 实际应用的示例,这些示例涵盖了软件开发的不同领域,从原型设计和入门到数据分析和权限管理。

CodeWhisperer 可加快原型设计和入职培训


一个以有趣的方式使用 CodeWhisperer 的客户是 BUILDSTR,这是一家提供专注于平台开发和现代化的云工程服务的咨询公司。他们在后端使用 Node.js 和 Python,在前端主要使用 React。


我与 BUILDSTR 的联合创始人 Kyle Hines 进行了交谈,他说:“在对不同客户不同类型的开发项目利用 CodeWhisperer 的过程中,我们已经看到了它对原型设计的巨大影响。例如,我们能够以极快的速度为与其他亚马逊云科技服务(例如 Amazon DynamoDB)交互的 Amazon Lambda 函数创建模板,这给我们留下了深刻的印象”。 Kyle 说,他们现在在原型设计上花费的时间减少了 40%,而且他们注意到客户环境中存在的漏洞数量减少了 50% 以上。



Kyle 补充说:“由于招聘和培养新人才是咨询公司的一项长期工作,因此我们利用 CodeWhisperer 对新开发人员进行入职培训,它帮助 BUILDSTR Academy 将入职培训的时间和复杂性减少了 20% 以上。”

CodeWhisperer 用于探索性数据分析


Wendy Wong 是一名业务绩效分析师,在 Service NSW 和 AI 敏捷项目中构建数据管道。由于她对社区的贡献,她还被评为了 亚马逊云科技数据大侠。她表示,当她使用统计和可视化工具分析数据集以获取其主要特征的摘要时,Amazon CodeWhisperer 显著加快了探索性数据分析过程。


她认为 CodeWhisperer 是一个快速、用户友好且可靠的编码助手,可以准确地推断出她编写的每一行代码的意图,并最终通过其最佳实践建议帮助提高代码质量。


“使用 CodeWhisperer,我不必记住每一个细节,因为它可以准确地自动完成我的代码和注释,大大简化了代码编译”,她分享道,“以前,我需要花 15 分钟来设置数据准备预处理任务,但现在只需要 5 分钟就能准备好”。



Wendy 说,通过将这些重复的任务委托给 CodeWhisperer,她的工作效率得到了提高,她写了一系列文章来解释如何使用 CodeWhisperer 来简化探索性数据分析。


另一个用于浏览数据集的工具是 SQL。Wendy 正在研究 CodeWhisperer 如何为不是 SQL 专家的数据工程师助力。例如,她注意到他们只需要求其“写入多个联接”或“编写子查询”就可以快速获得要使用的正确语法。


CodeWhisperer 可加快测试和其他日常任务


我有幸与亚马逊云科技开发人员关系平台团队的软件工程师共事了一段时间。这个团队的工作内容包括构建和运营 community.aws 网站。



Nikitha Tejpal 的工作主要围绕 TypeScript,CodeWhisperer 可以在她输入时提供有效的自动完成建议,从而帮助她完成编码过程。她说她特别喜欢 CodeWhisperer 帮助进行单元测试的方式。


“我现在可以专注于编写正面测试,然后使用注释让 CodeWhisperer 为相同的代码提供负面测试建议”,她说,“这可以将我编写单元测试所需的时间缩短 40%”。


她的同事 Carlos Aller Estévez 依靠 CodeWhisperer 的自动完成功能为他提供一两行代码建议,以补充他现有的代码,然后,他再自行判断是接受还是忽略这些代码。其他时候,他会主动利用 CodeWhisperer 的预测功能为他编写代码。“如果我明确想让 CodeWhisperer 为我编码,我会写一个方法签名,并在注释中说明我的需求,然后等待自动完成”,他解释说。


例如,当 Carlos 的目标是检查用户是否拥有给定路径或其任何父路径的权限时,CodeWhisperer 根据 Carlos 的方法签名和注释为部分问题提供了一个巧妙的解决方案。生成的代码会检查给定资源的父目录,然后创建所有可能的父路径的列表。然后,Carlos 对每条路径进行了简单的权限检查,以完成实施。


“CodeWhisperer 可以帮助我处理算法和实施细节方面的工作,这样我就有更多时间思考大局,例如业务需求,并创建更好的解决方案”,他补充说。



CodeWhisperer 是一名多语言团队合作者


CodeWhisperer 通晓多种语言,支持 15 种编程语言的代码生成:Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala。

CodeWhisperer 还是一名团队合作者。除了 Visual Studio (VS) Code 和 JetBrains 系列 IDE(包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm 和 DataGrip)之外,CodeWhisperer 还可用于 JupyterLabAmazon Cloud9Amazon Lambda 控制台和 Amazon SageMaker Studio


在亚马逊云科技,我们致力于通过投资开发新服务来满足客户的需求,帮助客户将负责任的人工智能从理论转变为实践,让他们能更轻松地识别和缓解偏见,提高可解释性,并帮助保持数据的私密性和安全性。

2023-11-28 14:088006

评论

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

Centos7 mongodb安装全攻略

红泥

mongodb

在5G智慧园区的“保龄球道”上,目标全垒打的征途

脑极体

Apache Pulsar 8 月月报:里程碑一个接一个

Apache Pulsar

大数据 云原生 Apache Pulsar 消息系统 消息中间件

全场景智慧:新工业革命必须拥抱的晨曦

脑极体

LeetCode题解:239. 滑动窗口最大值,双循环暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

企业表格技术与风险指标补录系统

葡萄城技术团队

SpreadJS

区块链支付系统开发,数字货币支付承兑商APP模式搭建

13530558032

LeetCode题解:84. 柱状图中最大的矩形,循环+双指针暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

macos主流工作开发套件指南

久违

macos Docker 大前端 自动化部署

经济适用的企业内外网互动直播方案

fumingwang

音视频 直播 视频会议 企业应用

区块链+公共安全 大有可为

CECBC

区块链 安全

dubbo应用级服务发现初体验

捉虫大师

dubbo 注册中心

深度解读:Apache DolphinScheduler 新架构与特性,性能提升2~3倍

代立冬

大数据 开源 工作流调度 开源社区

oeasy教您玩转linux010204-figlet

o

Flink保存点-17

小知识点

scala 大数据 flink

Docker 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker 容器 集群 redis cluster

学习笔记丨结构体中的内存管理

Liuchengz.

c Linux 学习

从每秒6000写请求谈起

架构师修行之路

程序员 架构师 高并发系统设计

凤凰交易所 全球首个多元化生态交易平台震撼来袭

InfoQ_967a83c6d0d7

Python 中的数字到底是什么?

Python猫

Python 翻译 PEP

iWebExcel 协同数据填报和在线分析平台

葡萄城技术团队

SpreadJS

缓存与数据库一致性问题深度剖析

Zhendong

数据库 缓存 秒杀系统

芯片破壁者(十五):仙童半导体和“八叛逆”所缔造的“硅谷模式”

脑极体

区块链usdt承兑商支付系统开发 区块链应用开发

电微13828808271

USDT承兑支付系统开发

有奖征文火热开赛,万元大奖等你来拿,准备好了吗?

InfoQ写作社区官方

程序员 开发者 音视频 随笔杂谈 RTC征文大赛

北京首台区块链政务终端亮相 一键“拉取”链上数据

CECBC

区块链技术

ARTS Week10

丽子

实战中学习浏览器工作原理 — 之 HTTP 请求与解析

三钻

CSS Java 大前端 浏览器

区块链数字货币交易所开发,数字交易平台搭建

13530558032

数字货币钱包软件开发方案,区块链数字货币钱包源码

13530558032

合约跟单系统开发,合约跟单软件定制开发

13530558032

使用 Amazon Q Developer 作为 AI 编码助手,重新构想软件开发_生成式 AI_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章