查看原文
其他

生成式 AI 如何融入软件开发全生命周期

Google Cloud 谷歌开发者
2024-07-19

以下文章来源于谷歌云服务,作者 Google Cloud

作者: Megan O'Keefe
职位: Google Cloud 开发技术推广工程师
作者: Priyanka Vergadia
职位: Google Cloud 开发技术推广工程师

对于 Google Cloud 团队而言,我们认识到为客户构建出色的产品,并不是说编写和发布代码就够了。要经过不厌其烦的白板会议、走廊对话和电子邮件交流,然后才能确定所要构建的内容和方式。启动之后,还要确保应用程序具备弹性和安全性,并对客户产生有意义的影响。


生成式 AI 在这一年飞速发展。看到市场上的各种工具层出不穷,您或许会问所有这些新工具在实际生活中是否真的有用。毕竟,出色软件的核心是人 – 而非机器。


考虑到这一点,让我们来看看 Google Cloud 开发人员每天是如何使用 Google AI 辅助工具将构思转入生产阶段的。



设想我是一家杂货零售商 Cymbal Superstore 的软件工程师。



我们的网站在 Google Cloud 上运行,我接到一项任务,添加一个用于展示最新零食的新产品页面。现在是星期一上午 9 时,我冲好咖啡了 – 我们开始吧。


协同设计



我的收件箱收到了功能要求。我使用 Gmail 的 "帮我撰写" (help me write) 功能快速回复。



然后,我和同事进入会议室,利用白板集思广益,讨论实施方案。



我回到办公桌前,使用 Google Cloud Architecture Diagram Tool 整理白板图。



现在,我准备撰写设计文档。我的同事得去开会,但我想讨论一些关于架构的问题。我打开 Bard,使用 Google Lens 上传我的架构图。Bard 读取了我的架构图,然后围绕我提出的实施方案的各种潜在风险,与我进行了简短交流。



随后,我将与 Bard 的对话导出到 Google Docs,开始准备设计文档。我使用 Google Docs 的 "帮我撰写" (Help me write) 功能生成提纲。借助这一省时省力的功能,我可以专注于解决棘手的设计问题,例如如何在后台缓存 Firestore 查询。



到了中午,我已将设计文档发送给我的团队进行审核。与此同时,用户体验团队一直在进行新产品页面的前端模拟。



在我的设计文档通过审核时,前端页面已经可以用于测试了。我们开始编写代码吧!


编写代码 (在帮助下)



编写代码是一件孤独的事情。虽然我是一位经验丰富的 TypeScript 工程师,但 Google Cloud 对我来说还是相当陌生,我经常发现自己打开了 50 个标签页 - 文档、StackOverflow、舒缓的音乐 – 只是为了编写 10 行代码。来看看 Duet AI for Google Cloud 如何帮我解决这个问题。


我从 Google Cloud Workstations 启动开发环境,并打开代码编辑器。首先,我使用 Duet AI in Apigee 为新的 REST API 端点自动生成 OpenAPI 规范。然后,我使用 swagger 生成器根据该规范自动创建 TypeScript 桩代码。



现在,我准备实施业务逻辑。我使用 Duet AI 的代码生成功能,通过代码注释让其提示我想要的 Firestore 查询。我按下 tab 键,接受 Duet AI 的代码建议。



然后,我在本地测试我的代码 – 呃,我看到了一处错误。



我不确定这个错误意味着什么,于是我从 IDE 中打开 Duet AI 聊天。Duet AI 是使用 Google Cloud Docs 和示例代码训练的,其不仅能帮我找出错误的含义,还能找到修复代码错误的方法 – 而无需狂乱地上网搜索。



修复该处错误后,我可以使用同一个 Duet AI 对话帮我编写新端点的测试用例。Duet AI 可以根据我打开的测试文件内容定制其响应,进而生成测试,而该测试所使用的框架和格式与我的其他测试相同。



在 Duet AI 的帮助下,由于减少了从 IDE 进行上下文切换的次数,我可以更快速地获得工作原型。


放心操作



我将代码提交至源代码控制,然后与同事一起进行代码审查。我合并了新功能,这样新产品页面将推出到生产环境。好极了!但软件开发生命周期并未就此结束。



作为一位为此项生产服务而随叫随到的应用程序开发人员,首先我想查找服务日志。我使用 Duet AI 的 "控制台聊天" (console chat) 功能帮我浏览 Cloud Run 控制台。



然后,我与 SRE 团队合作,在 Cloud Monitoring 中为 Inventory 服务创建一些服务级别的目标。我使用 Duet AI 的 "帮我修改" (help me modify) 功能,创建有关服务健康状况的复杂查询。作为 PromQL 领域的非专业人员,该功能可以为我节省大量用于查找正确语法的时间。



安全性怎么样?比如说在上周的一次调试过程中,我在我的 Google Cloud 项目中为同事授予了一项临时的、宽松的 IAM 角色。Security Command Center 可以注意到这一点。借助 Duet AI 的 AI-generated summaries (AI 生成的摘要),我可以快速了解相关问题,并与安全团队合作进行修复。



分享影响



一个星期过去了,产品负责人让我在即将举行的全体会议上展示几张幻灯片。我和业务分析师同事一起准备。我们想了解创建新产品展示所带来的影响 - 这些新产品在专有页面上进行了专题展示后是否销量更高?


我们首先使用 "帮我整理" (help me organize) 功能在 Google Sheets 中创建一个待办事项列表。



然后,我们深入研究销售数据,使用 Duet AI in Spanner 的 SQL"代码补全" (code completion) 功能,查询过去几个星期的原始事务处理数据。



我们利用 BigQuery 中的销售汇总表收集更多数据。在业务分析人员轻松编写 SQL 查询时,我使用 Duet 的 "代码解释" (code explanation) 功能,更深入地理解我们正在收集的数据。



然后,我跳转到 Google Slides,使用 Duet AI 的 "帮我可视化" (Help me visualize) 工具为报告生成辅助图像。



全体会议进行得很顺利,我对如何提高该功能的性能有了一些新的想法。所有这些工作都是在 (AI 帮助下) 一天内完成的。


总而言之,我们使用了 Google 的 AI 辅助功能 - 从 Duet AI in Google WorkspaceDuet AI in Google CloudBard - 将构思变为现实。生成式 AI 工具帮助我们开展协作,在我们碰到难题时帮助我们进行调试,并自动执行任务,让我们的脑力得到释放,从而帮助我们解决困难事项。上述故事仅仅展示了 Duet AI 的一小部分强大功能。还有更多功能有待您去探索。




 点击屏末 |  | 了解更多 Google Cloud 最新动态

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存