消滅技術(shù)債務(wù):CodeLogic復(fù)雜的AI解決方案
AI 狂飆突進!CodeLogic 祭出復(fù)雜 AI 解決方案,硬剛技術(shù)債務(wù)!通過構(gòu)建大型知識圖,結(jié)合 LLM 和 MCP 服務(wù)器,實現(xiàn)“檢索增強生成”,精準(zhǔn)定位代碼風(fēng)險。多圖微分分析聯(lián)動 JIRA,AI 自動生成提示和工單,媽媽再也不用擔(dān)心我的 “Tech Debt” 了!
譯自:Killing Tech Debt: CodeLogic's Complex AI Solution[1]
作者:Loraine Lawson
邁阿密 — Edwin Gnichtel[2] 見過不少爛攤子——他說的爛攤子指的是遺留應(yīng)用程序和 IT 系統(tǒng)。
Gnichtel 是 CodeLogic[3] 的 CEO,這是一家軟件智能自動化平臺,正在部署 AI 來解決技術(shù)債務(wù)。此前,他是 CodeLogic 的首席技術(shù)官,也曾在 底層軟件工程[4] 領(lǐng)域工作過。
他在周二的 Infobip Shift Miami[5](一個專注于 AI 的開發(fā)者大會)上告訴聽眾,情況非常糟糕,難以用圖表表示。
“為什么我們有 75,000 個類?”他問道?!斑@是一個真實系統(tǒng)中的真實數(shù)字。順便說一句,這只是一個系統(tǒng),它是更大的系統(tǒng)生態(tài)系統(tǒng)的一部分?!?/span>
導(dǎo)致技術(shù)債務(wù)的開發(fā)原因
開發(fā)工作中存在許多技術(shù)債務(wù)[6]的原因。他指責(zé) Agile[7] 通過其無休止地推向生產(chǎn)來增加債務(wù),并補充說,雖然他是 Agile 的支持者,但它對快速交付的關(guān)注通過優(yōu)先考慮功能而非代碼質(zhì)量來加速技術(shù)債務(wù)。
此外,他指出系統(tǒng)構(gòu)建在過時的框架之上。另外,現(xiàn)在沒有人真正做系統(tǒng)架構(gòu)了,他補充道。他還指責(zé)對微服務(wù)的誤解[8]。
“有多少組織認(rèn)為,僅僅將他們現(xiàn)有的東西放入容器中,突然間就神奇地將其變成了微服務(wù)?”他反問道。
他展示了一個較小應(yīng)用程序的知識圖,該應(yīng)用程序“僅僅”有 5000 個類、34,000 個方法、300 個表、4700 個 SQL 函數(shù)以及無數(shù)的邊緣連接,形式為類派生和方法到方法的調(diào)用。
A blob of pastel colors that represents an IT application.
A blob of pastel colors that represents an IT application.
一個小型應(yīng)用程序的許多依賴關(guān)系的圖。
“當(dāng)你得到一個更大的應(yīng)用程序時,我甚至無法在視覺上表示它,”他說?!癧它] 只是屏幕上的一團顏色?!?/span>
AI 在技術(shù)債務(wù)中的作用
在這種泥濘的混亂中,我們正在添加 AI 生成的代碼。
“AI 有可能使情況變得更糟,”他說。“它寫在一堆垃圾之上,最終不會帶來好的結(jié)果。所以我們正在推動技術(shù)債務(wù)。”
各組織正在處理無休止的代碼維護。簡而言之,他認(rèn)為,這不再是人類可以解決的問題。
但也許 AI 可以。
CodeLogic 的方法是首先使用 AI 代理創(chuàng)建一個大型知識圖來映射系統(tǒng)的復(fù)雜性。
“在許多情況下,只有在執(zhí)行代碼時才能真正看到大量的依賴關(guān)系——例如,程序生成的連接對象、某些類型的構(gòu)造數(shù)據(jù)庫查詢,以及各種各樣的事情,”他說。
他補充說,執(zhí)行環(huán)境、解釋器和構(gòu)建環(huán)境(包括編譯器)喜歡注入東西。例如,Java[9] 使用 lambda。他說,Lambda 實際上并不存在。他解釋說,當(dāng)你查看字節(jié)碼時,它只是被轉(zhuǎn)換為類和方法。
“這只是 Java 的想象,”他說。
他補充說,所有這些依賴關(guān)系都必須被捕獲。CodeLogic 的數(shù)據(jù)模型位于產(chǎn)品之下,提供差異分析并提供影響信息,以幫助公司了解一切是如何連接的。
使用 AI 的復(fù)雜解決方案
CodeLogic 對多個模型的使用展示了如何使用 AI 構(gòu)建復(fù)雜的系統(tǒng)。
CodeLogic 一直計劃使用機器學(xué)習(xí)和其他 AI 技術(shù),但他們沒有預(yù)料到的是,一旦他們堆疊模型、部署 MCP 服務(wù)器并使用其他技術(shù)來改進大型語言模型[10],這些模型會改進得如此之快。
“它使我們能夠真正快速地解決這個問題,”他說。
帶有 MCP 服務(wù)器的 檢索增強生成[11] 允許他們與 LLM“對話”,以指向必須審查的代碼。影響分析揭示了重寫可能影響的所有部分,包括多個“跳躍”之外的部分,例如 REST 端點、API 邊界和數(shù)據(jù)庫。這個過程并非總是直接明了,可能需要重新提示并對照 CodeLogic 系統(tǒng)進行檢查,以了解 AI 的認(rèn)知。他表示,應(yīng)該對其進行跟蹤,以確保它不會破壞依賴關(guān)系。還需要人工參與來批準(zhǔn)更改。
CodeLogic 創(chuàng)建了一個多圖微分分析,可以開始生成所有必需的磁盤集。該分析由一個模型解釋,然后生成一個微分集。該微分集由另一個模型解釋,該模型生成提示和工單集。
這些可以放入 JIRA[12] 中,以便 AI 可以負(fù)責(zé)關(guān)閉工單。
“歸根結(jié)底,關(guān)鍵在于它也編寫提示,”他說?!斑@些提示可能非常復(fù)雜,然后會被直接推回到生成端的增強型 AI 中,即代碼生成端,這使你可以完成所有這些工作?!?/span>
最后一部分是幫助開發(fā)人員停止產(chǎn)生技術(shù)債務(wù)[13]。例如,開發(fā)人員可以詢問 CodeLogic 系統(tǒng),如果引入特定版本的庫會發(fā)生什么。
他說:“我們圍繞注釋語言提供了一些功能,如果你進行了更改,人們會收到通知,并且會受到懲罰。”
引用鏈接
[1] Killing Tech Debt: CodeLogic's Complex AI Solution:https://thenewstack.io/killing-tech-debt-codelogics-complex-ai-solution/[2]Edwin Gnichtel:https://www.linkedin.com/in/ned-gnichtel-12039965/[3]CodeLogic:https://codelogic.com/[4]底層軟件工程:https://www.technologyandstrategy.com/news/what-is-a-low-level-software-engineer[5]Infobip Shift Miami:https://shift.infobip.com/us/#hero[6]技術(shù)債務(wù):https://thenewstack.io/technical-debt-continues-to-mount-heres-how-to-solve-it/[7]Agile:https://thenewstack.io/agile-reinvented-a-look-into-the-future/[8]對微服務(wù)的誤解:https://thenewstack.io/how-to-fail-at-microservices/[9]Java:https://thenewstack.io/java-modernizes-new-tools-for-ai-and-quantum-age/[10]大型語言模型:https://thenewstack.io/what-is-a-large-language-model/[11]檢索增強生成:https://thenewstack.io/retrieval-augmented-generation-for-llms/[12]JIRA:https://thenewstack.io/why-developers-hate-jira-and-what-atlassian-is-doing-about-it/[13]停止產(chǎn)生技術(shù)債務(wù):https://thenewstack.io/stop-technical-debt-before-it-damages-your-company/




























