AI生成代码加速代码屎山噩梦?

简介: 如今,许多程序员选择使用AI来辅助编程,但是随着AI软件开发的快速普及,有关代码质量的担忧越发凸显。

如今,许多程序员选择使用AI来辅助编程,但是随着AI软件开发的快速普及,有关代码质量的担忧越发凸显。长期从事代码研究的Adam Tornhill曾表示,AI辅助编程所面临的主要挑战是,它很容易生成大量原本无需编写的代码。

根据最新的研究,结果确实令人担忧。除了代码反复修改后被删除的问题,重复代码比例也变得越来越严重。

GitHub Copilot 自推出 beta 版以来,迅速席卷了 AI 编码领域。根据公司首席执行官 Thomas Dohmke 的介绍,该软件目前已经吸引了超过一百万付费订阅开发者,有效提高了开发任务的速度达到55%。此外,在启用Copilot的文件中,有46%的代码量是由人工智能生成的。

根据开发者分析公司GitClear的研究,在对1.5亿行已更改代码进行数据收集后发现,三分之二的数据来自私营企业以匿名方式共享的数据,而三分之一的数据则来自谷歌、Facebook和微软等技术大厂的开源项目。

该研究的重点是对经过修改、更新、删除、复制和移动的代码进行处理,同时排除掉GitClear事先定义的“噪音”,比如同一段代码被提交到多个分支、空行和其他没有意义的代码行。
然而,GitClear 的研究集中在代码质量而非代码数量,并且发现 AI 助手主要提供“代码添加建议”,但很少提供代码更新、移动或删除建议。

要精确衡量代码质量并不容易。研究者们也确实发现了一些变化趋势,显示代码的添加、删除、更新和复制/粘贴量都有显著增加,但是代码移动的比例则有所减少。他们还发现代码重复率大幅增加,从2020年的3.3%提高到目前的7.1%。

通常来说,代码移动是开发者重构代码时的一个重要标准。具体来说,就是要在改善代码设计和结构的同时,确保不会改变原有的功能。

研究人员初步推测这一趋势或许与 AI 编码技术的迅速普及有关,但具体原因仍需进一步验证。他们严厉批评了过度使用复制/粘贴代码的负面影响,并指出:“这种对 AI 生成代码的盲目使用,将对代码的长期可维护性产生灾难性的影响。”

然而,过度依赖复制粘贴并不是一个新的问题。开发人员之所以这样做,可能是因为无需调整和重用现有代码,直接复制粘贴更快捷省事。或者可能是由于多个开发者之间的沟通不畅,或者过度从开发示例和编码问答网站上抄袭内容。

GitClear的研究人员并没有具体讨论如何解决所发现的这些问题,而是转向了"后续研究问题"。然而,他们也建议工程部门的领导者应该"监督提交数据,并考虑其对未来产品维护所带来的影响"。

这项研究可能会在一定程度上安抚那些担心被人工智能工具取代的开发者们。代码分析公司CodeScene最近进行的一项人工智能代码重构研究也得出了结论,“在编码环境中,人工智能远远不能替代人类。”

但可以确定的是,AI 编码助手绝对不会消失,相反它会像所有新工具一样不断进行改进,开发者会学习如何优化它的思路,提高它的使用效果。实际上,现在的开发者们已经开始认识到代码质量的重要性。根据GitHub和Wakefield Research的调查报告显示,在被调查的程序员中,当被问及“在积极使用人工智能时,应该根据哪些指标进行评估?”时,“代码质量”被认为是最重要的问题。

最近的研究显示,代码质量对业务产生的负面影响不可忽视。根据这些研究,通常情况下,由于技术债务和糟糕的代码,公司的开发人员平均浪费了23%~42%的时间。这一结果足以引起我们的关注。另外,有关软件开发人员由于技术债务而导致的生产力损失的研究还指出,开发人员经常不得不引入新的技术债务,因为公司一直在通过牺牲代码质量来换取短期的收益,如新增功能等。

因此,提高代码的可读性和可维护性,注重代码的健壮性和性能优化,确保代码的安全性。代码遵循如命名规范、注释规范、代码风格统一等规范和最佳实践,依然是开发人员需要攻克的课题。而为了达到这些要求,开发人员需要具备扎实的编码能力、良好的团队合作精神以及使用正确的AI编码助手,从而辅助自己高效实现高质量代码输出。

以飞算推出的专注AI生成Java函数的FuncGPT(慧函数)为例,集成多年的编程现场大数据,经过数百万行代码训练,帮助开发人员实现通过自然语言即可实时生成高质量、高可读性的Java函数代码。生成代码可直接复制到IDEA。在代码质量方面,由于FuncGPT(慧函数)具备强大的自然语言处理能力,能够准确理解用户对函数的描述和要求,降低了开发沟通成本和理解难度,同时因为经过代码编写最佳实践和大规模机器联合训练,减少了由于人的疏忽和语法错误引起的Bug,因此生成的代码质量有保证。多次内部测试显示,相较市面上ChatGPT等大模型,FuncGPT(慧函数)生成的代码质量更高,更便于开发人员直接使用。

目前,企业引入人工智能辅助工具来实现“降本增效”是可以理解的,但我们需要谨慎运用,充分发挥优势、避免劣势。让 AI 辅助编程更好地帮助开发者需要各方共同的努力。

相关文章
|
1月前
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
2195 5
|
2月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1451 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
11天前
|
人工智能 数据挖掘
AI长脑子了?LLM惊现人类脑叶结构并有数学代码分区,MIT大牛新作震惊学界!
麻省理工学院的一项新研究揭示了大型语言模型(LLM)内部概念空间的几何结构,与人脑类似。研究通过分析稀疏自编码器生成的高维向量,发现了概念空间在原子、大脑和星系三个层次上的独特结构,为理解LLM的内部机制提供了新视角。论文地址:https://arxiv.org/abs/2410.19750
53 12
|
1月前
|
人工智能 安全 JavaScript
Open Interpreter:AI 赋能终端!在终端中对话AI模型进行编程,通过运行代码来完成各种计算机操作任务
Open Interpreter 是一个让语言模型运行代码的强大工具,提供了一个类似 ChatGPT 的界面,支持多种编程语言和丰富的功能。
86 7
Open Interpreter:AI 赋能终端!在终端中对话AI模型进行编程,通过运行代码来完成各种计算机操作任务
|
17天前
|
人工智能 文字识别 API
OpenSearch & AI 开放平台,实现0代码图片搜索!
本文主要介绍了如何利用阿里云的 OpenSearch 和 AI 搜索开放平台来构建一个无需编写代码就能完成的图片搜索功能。
63 12
|
12天前
|
人工智能 搜索推荐 安全
数百名研发人员用通义灵码,33%新增代码由AI生成,信也科技研发模式焕新升级
目前,信也科技数百名研发人员正在使用通义灵码,周活跃用户占比70%,新增代码中有33%由通义灵码编写,整体研发效率提升了11%,真正实现了数百研发人员开发效能的全面提升。
|
26天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 系统与程序代码关系
本文探讨了AI系统与程序代码之间的关系,通过PyTorch实现LeNet5神经网络模型为例,详细介绍了AI训练流程原理、网络模型构建方法、算子实现的系统问题以及AI系统执行的具体计算过程。文章不仅解释了神经网络的前向传播和反向传播机制,还深入分析了算子在AI框架中的作用及其底层实现,包括卷积层的具体计算和优化问题。此外,文章对比了使用PyTorch与直接使用cuDNN+CUDA编程实现神经网络模型的差异,强调了AI框架在提高开发效率、自动化内存管理和实现自动微分等方面的重要性。
33 1
|
28天前
|
人工智能 机器人 Shell
AI语音机器人安装方法 AI机器人安装代码
AI语音机器人安装方法 AI机器人安装代码
29 2
|
2月前
|
人工智能 开发者
|
2月前
|
人工智能 IDE Java
AI 代码工具大揭秘:提高编程效率的必备神器!
【10月更文挑战第1天】近年来,人工智能得到了迅猛的发展,并在各行各业都得到了广泛应用。尤其是近两年来,AI开发工具逐渐成为开发者们的新宠,其中 GitHub Copilot 更是引发了无限可能性的探索。
141 9
AI 代码工具大揭秘:提高编程效率的必备神器!