AI 编程时代,如何让“高效编程”成为现实?

Serverless
人工智能
Amazon CodeWhisperer
生成式人工智能
0
0
随着[生成式 AI](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 的快速发展,AI 的应用领域正在逐渐拓宽,特别是在软件开发领域, AI 的介入显著提升了开发人员的效率与代码质量。基于此,**亚马逊云科技举办的“云上探索实验室”直播分享会上,德勤管理咨询高级专家谭鹏带来了《编程进化论:“高效编程”离我们到底还有多远》的主题分享**,让开发者们得以一窥“高效编程”的未来。 谭鹏在分享中聚焦 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的实战应用与高效解决方案,为开发者们揭示了 AI 编程助手如何精确高效地解决开发难题,包括基础篇,进阶篇(优化接口、实现图像识别和图像审核等),实战篇(开发 Serverless 应用)以及安全扫描等几个部分。不仅如此,谭鹏通过对 LLM 的发展现状介绍,和 AIGC 对软件开发所带来的影响的分析,帮助开发者更全面的理解 AI 在代码生成领域的发展动态和未来趋势。 ### **智能编程时代已至** 在科技的迅速演进中,人工智能不再仅是新兴技术,而是一场正在各领域大放异彩的革命。在今年《时代周刊》中的一篇文章中也提到:AI 正在以更快的速度在更多任务超越人类。从该文的数据显示,自 2022 年之后,AI 在代码生成领域进入了飞速发展。 作为开发者关注的 AI 技术,基于大语言模型的代码生成正在以一种高效且具革命性的方式,推动着软件开发的进程。《2022 年人工智能现状报告》揭示了自 2020 年 GPT-3 问世以来,大语言模型以比预期更快的速度受到开源社区的推崇和采纳。如下图所示,开源的大语言模型以红色标出,参数量从几十亿到几百亿,甚至达到了千亿级别,展示了大语言模型近年来爆发性的发展趋势。特别是在 2023 年,AI 模型的发布数量正经历着爆发性增长,这与市场成功验证了百亿参数大模型在垂直领域的有效性有着密切的联系。 ![image.png](https://dev-media.amazoncloud.cn/77dc1c33357d47318c535d3ba698338f_image.png "image.png") 在此背景下,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 这种专用大语言模型的出现,将逐渐改变开发者构建、测试和部署软件的方式,提升代码开发的效率与质量,成为 AI 编程时代中开发者的得力助手。 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 作为一个 AI 编程助手,能无缝集成到集成开发环境(IDE)中,以实时的方式为开发者们提供精准的代码建议,助力开发者更高效、安全地开发应用。基于通过学习数十亿行代码而训练出的大语言模型,可以实现的能力包括但不仅限于代码生成、代码总结和代码翻译。同时,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的安全扫描功能可以检测到潜在的代码漏洞,无论这些代码是由 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 生成还是由开发者自己编写,都能够提供相应的安全建议。 在实际应用场景中,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 表现亮眼,谭鹏老师通过现场演示,向开发者们展现了它在实战中的优势。 #### **邮件与邮编验证** 以电子邮件验证为例,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能轻松协助我们实现电子邮件的校验逻辑,大大减少了开发人员在这方面的工作量。开发者在用户接口中完成校验逻辑调用后,可以通过消息队列发送请求验证,还可以进行实时的单元测试,进行电子邮件校验逻辑的验证。通过实时的单元测试,开发者可以即时看到测试结果,及时调整和完善代码。 Hint ![image.png](https://dev-media.amazoncloud.cn/7b597a4dc90e473a931b41d22aeab203_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/3e8a66a91e9d4ff09b89618e0ec7ec63_image.png "image.png") 对于实现邮政编码的验证逻辑,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 同样表现优异。开启代码建议功能之后,开发者可以快速完成合适的代码去实现邮编的验证逻辑,并进行实时测试,保证测试用例正确通过。 Hint ![image.png](https://dev-media.amazoncloud.cn/7d2234ec340b4f829523b367c296a3bf_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/8115b327364c466d9d0adf137b1d4532_image.png "image.png") #### **必填字段验证** 在多个项目中,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 通过智能应用,使必填字段验证更加准确。开发者可以定义变量,为 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 提供上下文,实现必填字段校验。通过智能选择完整字段的代码段进行校验,一旦返回 400 状态码,就能确保所有必填字段的完整性与准确性。 Hint ![image.png](https://dev-media.amazoncloud.cn/3494f63ebf394cb99f8d0131ab802940_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/ac027b3d127c452780801b3784f5150f_image.png "image.png") [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的智能提示允许开发者即便在不知道消息体格式的情况下也能快速完成验证,大大地节省了开发者的时间和精力,让开发者更专注于核心功能和逻辑的开发。 #### **图像识别与审核** [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以帮助我们绕过耗时的编码任务,加速使用不熟悉的 API 进行应用的构建,例如使用图像识别和图像审核等功能。实战中,它能从用户上传到图像审核及保存的整个流程中,自动调用图像审核服务,实现图像内容的合法性判断。非法图像将被及时识别并返回 400 状态码,合法者则存储于 S3 中。我们可以对接受后的代码进行选择性的修改,使其更符合项目需求。如在接受推荐的图像审核代码后,我们还可以去调整代码,使图像审核逻辑更加完善。这一过程不仅大大节省了时间,也提升了代码的可靠性和稳定性。 Hint ![image.png](https://dev-media.amazoncloud.cn/84c03935edea4ccfbed9be0964e2889c_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/feefde09248f4f6c8d0a96704553eadb_image.png "image.png") 为确保图像审核的准确与合法,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 推荐我们使用亚马逊云的图像识别服务,利用深度学习模型对图像进行判定。每个图像标签都经过细致比对,通过 JSON 响应值判断图像是否合法。 综上所述,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能提供实时的、准确的代码建议,通过理解用户的输入,实时反馈推荐代码,快速完成图像识别和图像扫描的功能,帮助开发者更高效、安全地进行开发,大大优化了开发流程。同时,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 在这些场景中的应用也体现了 AI 编程助手在未来软件开发中广泛的应用潜力。 ### **释放开发潜能,革新传统开发模式** 经过上文对 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的功能和应用范围的探讨,我们明确了其在软件开发中的实际价值和可行性。接下来将展示 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 如何通过单行与多行注释触发代码生成,并通过其自动补全和上下文相关的代码生成优化开发流程,实现项目周期内的时间节省与效率提升。 #### **单行与多行注释** 在 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的实战应用中,单行和多行注释具有极大的实用价值。单行注释通常用于简洁明了的指令或需求,例如在一个实例中,仅通过一行简单的注释,开发者就能触发 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 生成创建 DynamoDB 表的代码,其中包含定义 primary key 和其他属性的细节,大大简化了开发流程。 Hint ![image.png](https://dev-media.amazoncloud.cn/cdcc9d1f811a45e0b087958edbd1eff2_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/fa611654999b49a6aca5728824b6f84c_image.png "image.png") 多行注释则更适合用于更复杂的需求和指令,例如生成一个能够解析和格式化数据的函数。在这种情况下,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 理解和分析多行注释中的需求,并生成相应的代码。 Hint ![image.png](https://dev-media.amazoncloud.cn/7adcd5f410604983acfd0a4c0e537ad8_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/8db96451776341fdbdaa6a6186cc588a_image.png "image.png") #### **自动补全** [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的另一大特色是自动补全。特别是在开发和测试阶段,它能够准确推测出开发者可能会用到的数据或代码段。在实际的实战演示中,通过预设好的对象,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 理解上下文,实时提供合适的数据补全建议,让 Mock 测试变得更加轻松便捷。 Hint ![image.png](https://dev-media.amazoncloud.cn/384a4c1889c24d079a7782e8069281e9_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/09e68489fe5a40d7a5ced716f2f8fca7_image.png "image.png") #### **上下文相关的代码生成** 上下文在生成代码时至关重要。在有了合适的上下文之后,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能够生成更为准确和合适的代码。例如,在引入正则表达式的上下文中,它为我们推荐了使用正则表达式进行邮箱验证的函数。 Hint ![image.png](https://dev-media.amazoncloud.cn/3843ece2f83c4b099fe180a31b1d5c97_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/84ac2daa208a4cf4aeb498a13112925a_image.png "image.png") 如果上下文中引入了亚马逊云的邮件服务,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 则为我们推荐了使用亚马逊云的邮件服务进行验证的相关代码。 Hint ![image.png](https://dev-media.amazoncloud.cn/8fff2642a6464517886e6769f02d9a31_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/5e18c7a9ad8a406096d0b54324dfef69_image.png "image.png") #### **算法生成** 在算法生成方面,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 向我们展示了代码推荐的准确性和效率。例如,在演示中,通过简单的命令和指示,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能生成二分查找算法。 Hint ![image.png](https://dev-media.amazoncloud.cn/9f9af71e2be545488d88fc2e375cc4eb_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/f971d1034f104d13a888f2c7f56a9ca6_image.png "image.png") 进一步地,用户可以通过具体的指令让 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 以递归的方式生成此算法,展现出了其对于算法结构和逻辑的深度理解与快速应用能力。对开发者来说,这不仅提升了代码编写的效率,还确保了算法的准确性和可靠性。 Hint ![image.png](https://dev-media.amazoncloud.cn/7ac33489433c4f35babb2a37abfbbb28_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/3ad84eb1bf314b0a88e6502d4ac667dc_image.png "image.png") #### **单元测试** [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 对我们在单元测试方面的协助也展现了显著的优势。例如,在演示中,对某一求和函数进行单元测试时,开发者仅需准备基础代码并使用 unittest 进行测试,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 即可生成对应的测试函数和推荐各种场景下的测试用例。通过这种方式,开发者可以方便快捷地完成测试,确保代码的健壮性。 ![image.png](https://dev-media.amazoncloud.cn/310e8651df344a238bbc925ae4dd88fe_image.png "image.png") 在进行计算器类的测试时,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 生成了包含加减乘除的全方位测试,保证了代码的测试覆盖率和准确性。 ![image.png](https://dev-media.amazoncloud.cn/f97ca05b89aa4644a9f7856233bb5637_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/a545e5fda9614fe8938b7f2bd1f3d30a_image.png "image.png") #### **SQL 编写** 在 SQL 编写方面,无论是编写 DDL 还是 DML,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 都表现出了强力的帮助。通过使用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),开发者可以在很短的时间内完成 SQL 表的创建和数据的插入。例如,在创建员工表的过程中,即使在没有给出详细 SQL 语句的情况下,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 通过开发者的简单引导就能生成完整且准确的 SQL 代码。大大简化了开发者在数据库操作中的工作,提高开发效率。 Hint ![image.png](https://dev-media.amazoncloud.cn/5a08058f92ed410aaacb993c16fcfcdf_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/378564a0cff14844bd86a1d3e26267f2_image.png "image.png") #### **命令行脚本编写** [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 在命令行脚本编写方面也体现出强大的能力。例如,在处理 Docker 相关命令时,它可以快速生成用于移除未使用容器、镜像和数据卷的命令。 Hint ![image.png](https://dev-media.amazoncloud.cn/aa4d7fcd650249239b112cb592734ff1_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/205b9da5e3384416945b2c40676fc953_image.png "image.png") 对于更为复杂的任务,例如需要停止亚马逊云上所有环境变量为 DEV 的 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 实例时,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可迅速且准确地生成正确的命令。不仅节省了开发者的时间,也降低了人为错误的可能性。 Hint ![image.png](https://dev-media.amazoncloud.cn/e3a92abb361747848985e201a0837962_image.png "image.png") Solution ![image.png](https://dev-media.amazoncloud.cn/8122a68025e74d638c5267fae6f2a193_image.png "image.png") 无论是在初期的需求分析和设计阶段,中期的编码和单元测试阶段,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 都能够为开发者和开发团队提供强大的支持,节省各个开发阶段的时间,从而在整个项目周期中实现效率的提升。 ### **全面安全洞察,构筑项目坚实防线** 除了全方位提高开发效率以外,在软件开发的全流程中,项目的安全性是不可或缺的一环,而 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 提供的安全扫描功能,在维护项目安全方面具有重大意义。它可以实时监测代码中可能存在的安全风险和漏洞,并及时提供解决方案,从而确保整个项目的安全稳固。 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的安全扫描功能是一大亮点,无论是对于由其自动生成的代码,还是开发人员手写的代码,都可以进行深度的安全扫描。例如,它能实时识别和建议修复 OWASP 列出的常见漏洞,如 SQL 注入,以及不符合加密库最佳实践的问题,极大降低了不安全加密实践带来的风险。 此外,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 还在生成代码时会进行详细的来源分析,若代码与训练集中的参考代码相似,该工具会自动提供源代码库的 URL 和许可证信息,帮助开发者验证和归因代码来源,进一步降低使用风险。在谭鹏老师的实战演示中,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 成功检测出了存在操作系统命令行注入的漏洞。 ![image.png](https://dev-media.amazoncloud.cn/10b69a04b50648c4a344f5de00c1093b_image.png "image.png") 通过这种方式,开发者可以在项目代码提交之前进行安全扫描,及早发现并补救一些安全漏洞,确保项目的稳定性和安全性,使开发人员能更加安心地专注于开发核心功能和逻辑。 ### **软件生态变革在即,开发者该如何应对?** 在安全性和效率的稳固基础上,我们可以尝试展望AI在软件开发的未来应用。[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 等大型语言模型的崛起,早已超出了单纯的代码生成与安全扫描范围,它们的出现正在悄悄改变着整个软件开发的生态环境和行业格局。 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的成功实践,也为行业中如何将AI技术应用于软件开发提供了宝贵的经验。同时,面对 AI 编程助手等先进技术,技术人员应继续加深对基础知识和编程技能的理解和掌握,以在未来的软件开发领域中保持竞争力。 为了让开发者实际体验 AI 编程助手的效率和智能化,亚马逊云科技特别推出了『云上探索实验室』活动。在这里,你可以直接操作 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),看它如何无缝融入到你的开发环境。通过【云上探索实验室】系列活动,还有更多专属收获等你来发掘: **1. 社区周边**:将有机会获取丰富的社区资源及周边; **2. 专业[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)交流圈**:包括但不限于专业的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)指导和专家答疑、前沿信息共享、创新合作等; **3. 深度了解 AI 编程工具**:通过实验和应用来了解 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),还能通过社群内和官方的专业指导和讨论,更深层次地理解 AI 在软件开发中的具体应用; **4. 荣誉徽章与流量支持**:对于出色的参与者,活动方将提供“产品体验官”荣誉徽章,并有可能获得官方的流量扶持,提升个人或团队的行业影响力; **5. 全方位的成长**:除了技术层面的提升,你还能在这个多元化、专业化的社群里,结识更多志同道合的开发者,拓宽视野,甚至寻找到合适的合作伙伴。 ![image.png](https://dev-media.amazoncloud.cn/45df2175a46e4622b38b5cfa964acdbf_image.png "image.png") **点击[这里](https://dev.amazoncloud.cn/experience/detail?id=64fe85015388453b9eee520e&sc_medium=corecontent&sc_campaign=product&sc_channel=CSDN),立即参与\~** ![开发者尾巴.gif](https://dev-media.amazoncloud.cn/df72d053388a4369a1d8fe53a1405a8c_%E5%BC%80%E5%8F%91%E8%80%85%E5%B0%BE%E5%B7%B4.gif "开发者尾巴.gif")
0
目录
关闭