软件工程3.0实践之路(六):LLM驱动编程,银弹快来了吗?

2023年1024程序员节,在 《AI 编程与研发效能论坛会议》圆桌环节,华为云智能化软件研发首席专家王千祥老师主持,我和来自微软、腾讯云、华为云等几位专家一起热情地围绕“大模型会是软件开发的银弹吗?”这一主题分享了各自的经验和见解。我们都集中在编程环节,谈了不同感受,但基于LLM生成代码、生成单元测试(UT)脚本的能力,我们一致认为不远的将来软件开发的“银弹”会出现,虽然预测出现的时间不一致,乐观者认为3-5年会出现,保守一些的专家认为8-10年。如果考虑此后几个月的AI发展,3-5年会成为现实。今年2月15号,OpenAI发布了视频生成大模型Sora,预示着大模型不仅能理解数字世界,开始理解物理世界,正如360公司创始人周鸿祎老师在一次分享中说的:Sora(出现)意味着AGI实现将从10年缩短到2-3年。如果AGI实现了,软件研发的银弹就随之而来,right?其次,原来相对保守的专家(认为银弹会在8-10年之后来到)看到最近几个月的大模型(如Google Gemini1.5支持100万token上下文,10万行代码,还能看视频)及其相关产品(如智能体、RAG方面的产品)的发布,是不是会把银弹出现的时间从原来8-10年调整为3-5年?

图片

前面我们讨论了大模型驱动软件需求工程、驱动设计,今天我们讨论大模型驱动编程,而这一点,也是许多公司最为关注的,毕竟软件研发团队中,人数最多的角色是程序员,如果代码能生成、UT能生成,这对企业来说,是不是很有可能减少很大一部分成本?而且开发速度也会显著提升,随之而来的交付时间也被显著缩短。我们可以看一下来自中国信通院的调查数据,代码采纳率达到21%~80%的团队接近82%,开发提效的中位数也达到41%。

图片

图片

随之而来的是国内外大厂投重金在代码大模型上,例如国外有:微软的GitHub copilot、Google AlphaCode/Codey/Duet AI(谷歌依旧很厉害,推出多款适合不同场景的智能辅助编程工具)、亚马逊Amazon Code Whisperer、Meta Code Llama2、Hugging Face StarCoder/HF-Autocomplete、SourceGraph Cody、Anysphere Cursor等;国内的代码大模型或工具/插件主要有华为代码大模型PanGu-Coder2和基于代码大模型的智能开发助手CodeArts Snap、百度Comate、蚂蚁codeFuse、阿里通义灵码、中兴星云研发、讯飞iFlyCode、智谱CodeGeeX、Fitten Code等。

下面就以华为智能开发助手CodeArts Snap为例,说明LLM如何驱动编程。我们可以从下面例子看到CodeArts Snap能够帮助程序员完成8个方面的工作,即完成代码生成、问答、UT生成、代码解释、生成注释行、代码调试、代码转换、代码评审/检查等。

1. 代码生成

过去,程序员需要手动编写每一行代码,这需要投入大量的时间和精力;对于复杂的算法和数据结构,尤其痛苦和耗时。现在借助CodeArts Snap,通过自然语言的对话和关联的上下文就能生成所需要的代码(包括代码行补全、函数级代码生成),轻松快速,编程效率提升50%左右。

图片

2. 研发知识问答

现在借助CodeArts Snap,有问必答,开发者可进行任意研发知识的提问,显著提高研发问题的解决效率。 

图片

3. 单元测试用例生成

过去手动编写每个单元测试用例的详细步骤和预期结果,在有限的开发时间保证代码测试覆盖率困难;

现在借助CodeArts Snap自动创建单元测试用例,提高测试覆盖率,确保每个功能和场景都被测试到。用例代码简洁,需要人工修改的代码行数少,行覆盖率高。

图片

4. 代码解释

过去产生了大量的遗留代码,新人接收不容易,读不懂代码,代码的复杂性会进一步增加理解的难度,尤其是在处理大型项目和复杂的算法时,人工阅读需要花费大量精力。

现在借助CodeArts Snap,借助快速分析代码并自动生成解释说明,提高阅读代码的速度和效率,代码解释的正确性和简洁性表现好。

图片

5. 生成注释行

过去,手动添加注释需要投入大量的时间,开发者理解和描述可能会存在遗漏或误解,导致注释不完全或错误。在借助CodeArts Snap能快速分析代码,自动生成有意义的完整的注释,增加代码可读性,确保同一个代码库注释风格的一致性。

图片

6. 代码调试和检查

过去查找代码中的错误需要大量的时间和耐心,尤其是对于复杂的代码和大型项目来说,定位问题可能会非常困难,现在借助CodeArts Snap,快速定位问题,并提供错误发生的详细信息和修复建议,大大缩短了定位错误的时间。

图片

(更多详情见:https://www.huaweicloud.com/product/codeartside/snap.html)

除此之外,中山大学软件工程学院助理教授王焱林老师(曾任微软亚洲研究院主管研究员)在去年AiDD峰会深圳站还分享了LLM在编程上的其他应用场景(如自反馈代码的生成、区块链智能合约代码生成、repo-levle的代码生成等),以及对未来的期望(注:可以去https://www.AiDD.vip/sz 下载完整的PPT)。

图片

图片

图片

图片

图片

如果您想更深入了解LLM如何驱动编程欢迎参加今年的AiDD峰会(5月上海站、8月北京站、11月深圳站),详见:https://www.AiDD.vip/。

软件工程40

大模型85

软件工程 · 目录

上一篇LLM驱动软件研发的全过程:从需求到架构、实现的旅程下一篇​工业界、学术界大咖齐聚,AiDD峰会邀您共赴盛宴!

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值