AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

评论

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

【摘】Git-从零单排 04期

卡尔

实时即未来?一个小微企业心中的流计算

Apache Flink

大数据 flink 流计算 实时计算

XSKY发布S3 Console,助力企业轻松玩转非结构化数据可视化管理

XSKY星辰天合

使用 Python 制作酷炫多彩的 Jenkins 插件词云图

donghui

jenkins wordcloud

依赖倒置总结

石刻掌纹

UML实践-食堂就餐卡系统

shangyu

极客大学架构师训练营

记录一下,我的记录之道

非著名程序员

学习 程序员 提升认知 工作效率

架构师-第二周

师哥

软件设计原则作业

梅子黄时雨

极客大学架构师训练营

奈学教育《百万架构师》课程大纲(1)

奈学教育

架构师

《实现领域驱动设计》拆书稿 DDD入门 & 领域、子域和限界上下文

三界

架构 领域驱动设计 DDD

架构师训练营第二周课程感想1

tuuezzy

Java 架构师

高承实:区块链将对哪些场景赋能,如何赋能?

CECBC

区块链技术 产业 赋能

TiDB原理解析

Flink 在快手实时多维分析场景的应用

Apache Flink

大数据 flink 流计算 实时计算

Cache类接口隔离设计

石刻掌纹

第二周作业

Diven

二叉查找树的解读和实现

ytao

Java 数据结构

如何看待年仅 28 岁的程序员实现财务自由,宣布从字节跳动退休?

非著名程序员

程序员 自由职业 程序人生 财富

游戏夜读 | 中国的游戏制作人

game1night

细说几种内聚

落英亭郎

高内聚 面向对象设计 面向对象思想

奈学教育《百万架构师》课程大纲(1)

古月木易

极客大学架构师训练营

奈学教育《大数据架构师》课程大纲(1)

奈学教育

大数据

POJO类中布尔类型为啥不让用isXxx命名

Java课代表

Flink on Zeppelin (4) - 机器学习篇

Geek_8o1tcx

大数据 flink 学习 流计算 Zeppelin

图解 Vue1.0 响应式系统

前端黑板报

源码分析 Vue Reactive

使用wavm运行wasi wasm程序

Foliage

【玩转写作社区】如何让专业编辑青睐你的文章?被推荐置顶?

InfoQ写作社区官方

写作平台 InfoQ 玩转写作平台 热门活动

奈学教育《大数据架构师》课程大纲(1)

古月木易

大数据

数仓大法好!跨境电商 Shopee 的实时数仓之路

Apache Flink

大数据 flink 流计算 实时计算

【面向对象】—依赖倒置、接口隔离

不二架构

极客大学架构师训练营 依赖倒置 接口隔离原则

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