相关资料与幻灯片:https://github.com/HashJang/spring-io/tree/main/2024/Automated%20software%20refactoring%20with%20OpenRewrite%20and%20Generative%20AI%20by%20Tim%20te%20Beek%20 软件工业革命已经到来。现在,软件有80%是开源和第三方的,20%是专有代码,将它们缝合在一起形成关键业务应用程序。在这些大型和多样化的代码库中,依赖项会频繁地自行更新,任何人都可能随时引入安全漏洞。不定期更新软件会导致关键bug、性能和安全问题(而且您的代码可能会变得更难处理!)。 在这些庞大的代码库中进行大规模代码重构是一个多点操作,需要准确性和一致性。它是关于在代表数千万行代码的数千个存储库中影响许多个别光标位置的变化。无论您是迁移框架还是防范漏洞,这都需要协调、跟踪和准确性。 这不是人工智能单独可以解决的问题。人工智能和许多人一样,在数学和编程方面并不擅长。人工智能需要一台计算机,就像人类一样。 在本次演讲中,我们将讨论使用确定性的OpenRewrite重构引擎进行自动化代码修复,这是一种诞生于2016年的Netflix技术。它建立在操纵代码的无损语义树(LST)表示上,使用配方(程序)进行100%准确的保留样式的代码转换。这是一个基于规则的权威系统。 然后我们将展示如何将基于规则的系统的精确性与人工智能的强大功能相结合。我们将演示一种生成式人工智能程序,它对源代码进行采样以识别缺陷,并使用OpenRewrite进行修复。这是一种通用模式,您将开始大量看到 - ChatGPT获得了一台计算机(在这种情况下,OpenRewrite就是这台计算机)。
www.bilibili.com