如果你还没有尝试过CoPilot、ChatGPT等工具来辅助开发工作,未来的5年,你可能会很快被行业所淘汰。这是因为那些善于利用AIGC来辅助编程的人可以以十倍于你的速度开发出相应的代码,而你却没有这项技能。
颠覆传统初级程序员培训和辅导过程的大模型出现,使得技术和经验拥有了“平权”的机会。
试想,过去初级程序员在入职时通常是由师傅给出一个任务需求,教授大致的思路,然后在初级程序员编写代码的过程中进行培训和纠正,根据不同的问题提供不同的解决方案,直到初级程序员掌握这些经验。
然而,随着大模型的出现,这个过程发生了彻底的改变。大模型本身拥有广泛的知识,并且具备一些基本的推理能力。它可以通过无数次的实践,学习公司中各种代码和业务定义。与师傅相比,大模型所遇到的场景要多得多。同时,根据开发者的需求和目标,它还能够提供可能的答案。
这个过程就好像我们得到了一个无所不能的"导师",不仅可以立即回应我们的需求,还可以直接为我们撰写可能的代码供我们参考学习,使我们这些初级程序员能够快速掌握撰写代码的技能。通过自己的学习和调整,我们可以提交出远远超过个人水平的代码,供他人进行评审。
因此,聪明如你,我们没有理由不使用大型模型来提高我们的研发效率。
目前AIGC 自动化编程工具林林总总,流行的工具包括ChatGPT和CoPilot,面对不同的业务场景中,如何选择合适的工具来帮助自己提效呢?
优点
缺点
场景
人
逻辑复杂缜密,可以完成比较复杂的开发任务
写代码效率低
成本高
复杂业务逻辑
核心引擎
CoPilot
整合在开发工具中,快速复用/书写类似代码
准确率不高,生成代码段比较短,逻辑简单
辅助编程就,复用代码
ChatGPT
可以编写较复杂的业务代码,特别是有类似案例的情况下
需要code-review,错误隐藏的更深吗,缺乏创造性
有类似场景代码,自动生成新场景代码
不难发现,人类最适合从事具有挑战和创新的架构类产品或者某个新业务场景的代码开发。如果其中某些部分可以复用或者使用相似的算法,可以利用CoPilot快速提高工作效率。而ChatGPT则适用于自动生成类似场景的代码,稍加修改即可使用。。
回到国内,国内软件开发领域大模型也在不断深化落地。以飞算SoFlu软件机器人近日重磅上线FuncGPT(慧函数)功能为例。作为飞算SoFlu软件机器人的一个重要组成部分,FuncGPT(慧函数)支持所有类型函数创建。通过自然语言描述JAVA函数需求,实时生成高质量、高可读性的Java函数代码。生成代码可直接复制到IDEA,或一键导入Java全自动开发工具函数库。同时FuncGPT(慧函数)采用代码编写最佳实践及大规模机器联合训练的方式,致力于通过AIGF(AI-Generated Function)赋能软件开发,为中国软件开发者提供全栈式全流程软件开发的最佳体验。
具体来说,FuncGPT(慧函数)具备以下五大能力:
● 自然语言:通过自然语言即可生成函数,降低软件开发门槛。
● 秒级函数开发:全自动秒级开发函数,秒级完成,效率千倍提升。
● 一站式函数开发应用:函数生成即可直接应用,效率、安全有保障。
● 质量可靠:生成的函数代码符合业界规范、具备良好的可读性,符合最优解。
● 灵活生成:可以根据开发人员的具体需求生成并支持调整和修改。
FuncGPT(慧函数)现已开放免费使用,点击链接可以直接解锁SoFlu软件机器人更多特色功能。链接:http://suo.im/aREPi
但我们必须承认,尽管以ChatGPT和Co-Pilot代表的AI工具可以辅助编程,但它们并非万能的。目前,大模型生成代码仍面临许多挑战:
1、精确度的问题;
2、无法进行代码审查。
3、无法自动化进行测试;
4、无法担责。
精度度方面,即使是像ChatGPT4这样的大型模型也有可能出现错误,其准确率也只有90%,因此我们应该尽量简化代码编写的过程,以免产生完全错误的代码。当大型模型快速生成代码后,人类进行的代码审核可能无法及时进行,因为机器无法确定最终实现业务逻辑的代码是否正确。另一方面,如果由大型模型来进行代码审核,你会发现每次都会提出各种不同的改进点,但实际上这些改进点都是无关紧要的,无法确定逻辑的正确性。
大型模型在自动化测试案例和自动化测试方面也存在瓶颈。"TestPilot"是在学术界非常活跃的一个项目。大家可以参考康奈尔大学的两篇有趣的文章,《大语言模型是有限执行测试者:探索基于LLM的通用错误再现》和《使用大语言模型进行自适应测试生成》,虽然这些文章对工程化使用还有一定距离。
当然,在自动化编程中还存在最后也是最难的一道关卡——责任问题,就像自动驾驶一样。即使达到L5级别,如果出现问题,那么责任应该由谁来承担呢?举个例子,WhaleOps在实现了Txt2SQL功能之后,许多用户提出了一个问题:为什么不将SQL执行结果直接转化为业务部门所需的最终结果呢?这已经不是个技术问题,而是一个哲学问题了。不论是现在的ChatGPT准确率达到了90%,还是假设未来大模型能够达到99.9999%的准确率,你敢直接用一句话让它自动计算全公司的工资并自动与银行对接发工资吗?如果出了问题,你觉得是谁的责任?我们永远不能指望技术可以解决所有的业务问题,大模型也不例外。
目前,我们正处于大型模型自动编程的初级阶段。然而,相信在未来的3-5年里,自动化辅助编程将成为我们这一代开发者的标配工具。
如果在未来几年内,你在研发过程中仍然只会进行CRUD操作,而不懂得如何充分利用大模型来扩展自己的经验和业务理解,那么你将很快被那些懂得大模型编程的程序员所取代。他们可以将你的经验和业务理解扩大十倍甚至百倍。不要等到35岁才发现,你已经成为那被淘汰的9个人中的一个。
当然,尽管有些言之过早,但大模型在编程提效方面的趋势是不可阻挡的。飞算SoFlu软件机器人作为自动化编程方面的探索者,会不断深耕及沉淀,不断改进开发领域中人与AI之间的关系。最终,这将使程序员、人工智能和技术研发过程更有效地为业务服务。