使用生成式 AI 将数年编码量缩短至数天

使用生成式 AI 将数年编码量缩短至数天

现在,我们每天都会听到开发者使用生成式人工智能 (GenAI)工具来减少编写新代码或重构旧代码所需的时间和费用的“新故事”。

就在这几天,Visa 数据平台的总监Kautuk Pandey在 LinkedIn 上与人们分享,他使用ChatGPT和GitHub Copilot在一天之内对一个有 8 年历史的 Java 项目进行了逆向工程并记录在案。

Pandey在其 LinkedIn 帖子中说:“这是一个由离职多年的人写的代码库,我自己团队中最资深的人介入该系统大约 2 年。我对这些代码的作用以及它为什么做到现在完全一无所知。我将 ChatGPT 和 CoPilot 结合起来在一天之内将整个代码库逆向‘结对编程’,并生成了简单的设计文档。”

GenAI 与结对程序员


Pandey 承认,作为一名结对程序员,他有效地使用了 GenAI 工具来节省时间并避免人们繁重的工作。


Pandey 写道:“我不认为我能够如此高效地理解和分解遗留代码库。借助当今的通用人工智能解决方案,繁琐无趣的任务变得容易得多,而且更容易忍受(或变得更有趣)。”


这篇帖子引发了人们热烈的讨论——超过 120 条评论和 2,500 条回复,许多 IT 开发人士都分享了使用 AI 工具提高生产力的类似经验。


首席数据和分析官Ajai Govind Govindan表示,他最近对 Salesforce 的源代码做了类似的事情。他说:


“你在评论中提到的内容在这个过程中非常重要——对任何语言的代码编写方式要有基本的了解(如类对象、文件夹结构等)。但更重要的是,要有一颗好奇心,”他在回复 Pandey 时还写道。“对于那些认为‘这不是我的工作’的人来说,如果没有这些,任何 通用人工智能解决方案或进步都不会有帮助。”


Omdia 分析师Brad Shimmin这样表示说,事实上,GenAI 代码生成可以造就出色的结对编程程序员,不仅可以开发新的解决方案,还可以维护并完善旧的代码库。


消除技术债务


企业 IT 面临的最大挑战之一是:处理过去“投资”的技术债务。


Shimmin 这样表示说,在员工流动和 IT 优先级转变(例如,我们所有的 UX 工作都从JavaScript转向了React)之间,知识会很容易流失。这让公司很难随着时间的推移维护和发展其原有代码库。


“幸运的是,GenAI 真正擅长的领域是处理和理解大量的顺序信息,比如代码库。有了这个基础,LLM可以轻松快速地帮助人们理解代码库,甚至可以创或改进对开发者来说在第一年中可能毫无意义的功能文档。”


这样可以帮助公司更好地保存企业级知识并减少整体技术债务,这是一个令人兴奋的情况,它能为公司提供足够的空间来考虑潜在重构或重新制定遗留源代码。


Shimmin 还说一个重要的信息:“当然,诀窍在于你要选择一个具备以下条件的 LLM:a)擅长代码生成、文档编制等;b)通过微调或通过RAG (检索增强生成)和非常大的上下文窗口进行即时学习,对整个代码库进行过训练;c)在完成所有这些工作的同时,不会让公司面临任何类型的 IP、安全或隐私等风险。”


此外,Ryght的首席技术官Johnny Crupi表示:“即例遗留代码写得很好,我们通用现在拥有和开发的一切都应该不断经过人工智能分析与优化。”


成功案例


Carelon的数据科学经理Tarun Gandotra表示,他用 ChatGPT 在两小时内完成四天的工作。Gandotra 在回复 Pandey 时写道,这包括解析内容、根据内容创建对象,然后以此为基础创建基础机器学习模型。


通用人工智能咨询公司Coditas的联合创始人Shirish Bhatt在回复 Pandey 的帖子中写道:他的公司一直在帮助许多企业客户将遗留代码转换为现代级技术堆栈,“借助我们基于 GenAI 的平台therix.ai。我们还能够生成业务需求文档和代码。这节省了大约 40% 的时间和金钱。”


Appy Pie创始人Abhinav Girdhar 在回贴里写道:


“利用 ChatGPT 和 CoPilot 等 GenAI 工具如此快速地对遗留代码库进行逆向工程和记录,将给研发团队带来翻天覆地的变化。


看到这些技术如何改变繁琐的任务并使复杂的流程更易于管理,真是令人着迷。采用 GenAI 无疑是优化我们工作生产力和效率的前进方向。”


GitHub AI 工具大调查


<span style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline-style: initial; outline-width: 0px; max-width: 100%; font-size: 15px; font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, " helvetica="" neue",="" "pingfang=""

Keyword: Domo

Leave a Comment