使用LLM实现自我修复代码的想法令人兴奋,但平衡自动化和人工监督仍然至关重要。
译自 How to Use Self-Healing Code to Reduce Technical Debt,作者 Kirimgeray Kirimli。
到 2028 年,一些估计表明 75% 的企业 软件工程师将积极 使用 AI 代码助手,而 2023 年初这一比例还不到 10%。在一个时间就是金钱的行业,转向生成式 AI 是一个宝贵的工具,可以简化工作流程并提高生产力。然而,重视项目速度可能会让我们行业中的人付出代价。
技术债务,即选择快速而不是更有效但需要更多时间的做法所带来的成本,一直以来都在拖累软件开发人员的生产力。研究表明,他们 23% 到 43% 的时间都花在了解决这种做法带来的问题上。这可以节省时间,但以后会以重写、纠正和改进代码的形式付出利息。
许多人认为,急于整合生成式 AI 相关工具会导致技术债务的增加,因为快速增长、复杂的代码和基础设施变化。然而,AI,尤其是 LLM 系统,有可能成为解决这一长期存在问题的方案。通过其自动化功能和自愈功能,明智地使用该技术的软件团队可以努力通过主动 最大限度地发挥其自愈代码功能 来减少技术债务。
让我们讨论一下围绕 AI 和技术债务的担忧,以及组织如何通过自愈代码来解决和减少这一行业范围内的难题。
什么导致技术债务?
技术债务是软件行业的一个重大问题,它会导致更高的维护成本、更慢的开发速度和更低的敏捷性。任何形式的偷工减料都会增加技术债务的风险,而业内一些人将 AI 编码工具视为罪魁祸首。
一些开发人员对这些工具持谨慎态度,因为 AI 生成的代码缺乏可靠性,而且他们无法控制工作流程。人们还认为,AI 可能会导致技术风险,从而在以后引发问题。
虽然 AI 不是技术债务的主要原因,但如果使用不当,它也会起到推波助澜的作用。例如,最初可能表现良好的复杂模型,随着新数据的出现或升级的需要,可能会带来维护问题。集成新的应用程序和功能将等于更多的 机器学习操作 (MLOps) 流程,这可能会让现有系统不堪重负。
过时或过时的编码实践正在减缓当今开发人员的速度,迫使他们升级流程,从而加剧了技术债务的可能性。解决这个问题需要一种系统性的方法。例如,我们曾经有一个项目,客户的遗留代码阻碍了开发。为了解决这个问题,我们部署了一支经验丰富的开发人员团队,他们系统地解决了技术债务并优化了代码库,从而使开发效率提高了 47%,并缩短了项目交付时间。
相反,AI,尤其是大型语言模型 (LLM) 系统,具有通过自动化和自愈功能帮助减少技术债务的巨大潜力。自愈代码,即软件能够识别缺陷并在无人为干预的情况下修复缺陷,是解决技术债务的一种流行解决方案。
解决和减少技术债务
如前所述,LLM 已成为减轻技术债务风险的变革性解决方案。AI 在理解和生成文本方面取得了巨大进步,并且凭借其处理和生成类似人类的响应的能力,很明显,LLM 可以与现有的代码库和票务平台集成,以创建自愈代码。例如,可以使用 AI 和 LLM 开发代码审查工具,以提供对生成代码的逐行分析并发出类似人类的响应。
此外,AI 工具可以自动查找和修复错误,这有助于显着减少问题积压。然后,还有专为代码重构而设计的工具。它们分析代码中的低效率并进行改进以优化性能,从而使一切运行得更加顺畅。 基于经验并考虑到当前技术发展速度,AI 工具可以极大地提高代码质量,并提高开发流程的效率。这种影响很可能在未来五到十年内真正减少技术债务。这给了行业足够的时间来完善技术,构建可靠的集成框架,并建立可靠的手动审查流程,以确保一切顺利运行。
另一种减少技术债务的方法是依赖管理。AI 系统可以更新和管理代码依赖项,确保一切安全且最新。最后,AI 可以通过发现潜在问题并提出修复建议来协助代码审查,从而显着提高代码的整体质量。
建立内部实践
LLM 自愈代码的想法令人兴奋,但平衡自动化和人工监督仍然至关重要。手动审查对于确保 AI 解决方案准确且符合项目目标至关重要,自愈代码可以大幅减少手动工作量。
良好的数据管理至关重要,同样重要的是确保团队熟悉最佳实践,以确保为 AI 技术(包括 LLM 和其他算法)提供最佳数据管理。这对于跨部门数据共享尤其重要,最佳实践包括进行评估、整合以及数据治理和集成计划,以改进项目。
所有这些都离不开在您的员工中实现持续学习。为了鼓励团队利用这些机会,领导者应该为培训研讨会腾出专门的时间,这些研讨会提供对最新工具的直接访问。这些培训课程可以围绕亚马逊网络服务 (AWS) 等认证进行,这可以极大地激励员工提高技能。通过这样做,可以实现更高效、更具创新性的软件开发环境。
在您的组织中推动培训采用的另一种方法是实施持续学习奖励。例如,一位资深软件工程师可能认为自己已经对数据分析了如指掌,但可以通过奖金激励他们参加额外的培训。这些机会可以使员工接触到他们可能忽略的职业发展路径,通过使用最新解决方案进行更广泛的技能发展,使个人和组织都受益。
就像任何新的技术采用一样,生成式 AI 需要深思熟虑。因此,在部署 genAI 时,应与开发围绕手动编码的编码标准一样多的计划和准备,这有助于最大程度地减少技术债务。这也适用于集成自愈代码等解决方案,这些解决方案需要严格的设置才能长期有效。