写点什么

使用 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:088250

评论

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

夏季不塞网胶浆、夏季不堵网胶浆

C13713145387

夏季不塞网胶浆

弹力抗刮硅油布胶浆

C13713145387

弹力抗刮硅油布胶浆

NumPy之:结构化数组详解

程序那些事

Python 数据分析 Numpy 程序那些事

哑面爽滑肤感胶浆

C13713145387

哑面爽滑肤感胶浆

Spring-技术专题-设计模式和研究分析

码界西柚

spring 设计模式 原理分析 5月日更

【案例】新基建下星环科技城轨智能视频分析系统建设

星环科技

水性硅胶防滑透明浆

C13713145387

水性硅胶防滑透明浆

OAuth 2.0 与 OIDC

Zhang

OAuth 2.0 OIDC

爽面弹力胶浆、哑面弹力胶浆

C13713145387

爽面弹力胶浆

不反粘水性台板胶Waterborne table glue

C13713145387

不反粘水性台板胶

架构实战营模块三作业

日照时间长

架构实战营

百分点大数据技术团队:政务数据安全管理实践

百分点大数据团队

负载均衡续:万亿流量场景下的负载均衡实践

Coder的技术之路

负载均衡 架构 高并发 负载均衡架构

4.2 Go语言从入门到精通:延迟函数 defer

xcbeyond

defer Go 语言 5月日更

采取有效云网络安全策略的5个基本步骤

云计算

INNOVATE 2021 圆满落幕,一起盘点那些 AI 前沿实例!

亚马逊云科技 (Amazon Web Services)

一次过透气浆、印一次透气浆

C13713145387

透气胶浆 一次过透气浆

华云大咖说 | 安超DCM给数据中心“做主”

华云数据

展开说说,Spring Bean IOC、AOP 循环依赖

小傅哥

Java spring 小傅哥 ioc 循环依赖

Java中用户线程和守护线程区别这么大?

王磊

Java 并发编程 多线程 5月日更

哑面防水尼龙胶浆Nylon printing paste

C13713145387

哑面防水尼龙胶浆

一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法

华为云开发者联盟

调试 图数据库 Gremlin 遍历源 图遍历

MySQL数据迁移那些事儿

Simon

MySQL 数据迁移

牛仔底色保护浆(喷砂工艺)

C13713145387

牛仔底色保护浆

Flink on Zeppelin 系列之:Yarn Application 模式支持

Apache Flink

flink

postgresql数据库 timescaledb 时序库 超级表 块的压缩(compress_chunk()的应用)

Yang

数据库 postgresql

融云亮相 CDEC2021 上海站 全场景通信能力赋能企业数字升级

融云 RongCloud

聊聊我的编程时如何入门的

C语言与CPP编程

c++ 编程 程序人生 C语言 数据结构与算法

LiteOS内核源码分析:静态内存Static Memory

华为云开发者联盟

内存管理 LiteOS 静态内存 Static Memory Membox

Google官方关闭binary后,Android工程师怎么办?

Changing Lin

5月日更

立体水性石头拉浆

C13713145387

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