使用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 時,應與開發圍繞手動編碼的編碼标準一樣多的計劃和準備,這有助于最大程度地減少技術債務。這也适用于內建自愈代碼等解決方案,這些解決方案需要嚴格的設定才能長期有效。