CodeOps:使用LLM和模塊化編碼加快開發進程
譯文譯者 | 布加迪
審校 | 重樓
2009年,DevOps(開發運維)作為一種運維模型而出現,適用于想要充分發揮敏捷軟件開發方法潛力的團隊。它使這些團隊能夠盡快地構建和部署,為快速、迭代的開發建立一種新的范式。
隨之而來的是全球軟件開發的爆炸式增長,DevSecOps、MLOps、AIOps、DataOps、CloudOps和GitOps等相關框架層出不窮。任何工程職能或核心開發技術都有相應的運維框架和市場類別來加以優化。
既然市面上有這么多的解決方案,為何企業仍難以將大量的“-Ops”策略轉化為令人滿意的速度和創新結果呢?隨著組織不斷適應不同的代碼來源(專有代碼、開源代碼和大語言模型即LLM生成的代碼等),它們如何使這些模型適應不同來源的代碼?
CodeOps(代碼運維)應運而生,這種新興方法使用完全擁有和可重用的代碼快速構建軟件產品。它利用生成式AI和模塊化編碼概念來加快開發過程,加強創新,并最終推動更快的數字產品開發。
CodeOps的工作機理
與敏捷方法一樣,CodeOps旨在支持并加速企業內部的軟件開發。然而,它不是針對敏捷性進行優化,而是針對重用進行優化——重用規范、設計、架構、數據模型、集成以及代碼本身。
長期以來,重用現有代碼一直是工程師們的一種自然做法。當應用程序在規劃階段看起來相似時,你可以立即識別出一種合用的架構,并通過自動組裝其核心部分來快速啟動代碼庫。優秀的開發人員知道這一點,偶然會重用他們自己開發的或在開源代碼庫中找到的代碼組件。
然而,開發人員層面重用帶來的影響完全依賴團隊的成熟程度,通常沒有流程或工具來確保它在整個組織中有效地擴展以提供好處。只有通過系統性重用才能發揮這種潛力,即認證模塊集中提供,并且易于發現,用在參與應用程序開發的諸團隊中。
因此,希望利用CodeOps概念的組織應該為范式轉變做好準備。系統性的代碼重用是開發流程邁出的革命性一步。它需要創建一個集中式存儲庫來容納認證的模塊,這些模塊經過了必要的審查和廣泛的測試,以確保功能和安全。目的是創建一大批模塊,可以無縫地部署到不同的項目和團隊中。
利用生成式AI確保投資回報最大化
CodeOps也很容易適應人機混合開發領域的新趨勢。如今,大多數團隊都了解生成式AI的潛力,可以充當伺機集成的智能助手。然而,他們不確定如何規劃和跟蹤對業務結果的影響,并確保這方面的影響最大化。
通過重構團隊構建軟件的方式,CodeOps為了解生成式AI的投資回報提供了一個框架。它確定大語言模型使用的優先級如下所示:
1. 根據項目規范對現有模塊進行組合。
2. 創建與戰略性模塊路線圖一致的新模塊。
3. 為非模塊化用例生成自定義代碼。
在模塊組合方面,大語言模型已經達到或超過了人類的表現。模塊組合是指這項任務:對照自定義的產品描述或詳細規范,對已存儲的模塊目錄進行模式匹配。這種方法可以顯著地減少傳統軟件開發生命周期的“規劃和調校”階段,因此為不懂技術的利益相關者節省了時間,并縮短了總體開發時間。
大語言模型還非常適合根據自定義參數創建新模塊。如果提示足夠清晰,或者有足夠的組織現有代碼的訓練集,它們就能夠將團隊現有的代碼標準推而廣之,從而生成新的、可重用的規范和代碼模塊。采用系統性代碼重用的組織因此可以根據內部代碼標準,快速填充其模塊目錄,與通過手動創建模塊相比,可以在極短的時間內大幅提高生產力。
最后,CodeOps很容易整合由不同開發人員生成的“Copilot”風格的AI代碼。然而在CodeOps領域,這種用法局限于定制開發的最后一英里,這是初始模塊組合未能涵蓋的。這減少了團隊今天面臨的投資回報模糊性:一些開發人員頻繁使用AI,一些卻很少使用AI,但有了CodeOps,你可以確定AI在代碼庫的哪些部分有望為團隊提升生產力,然后相應地進行優化。
實戰中的CodeOps
說到重用代碼模塊,有兩個主要的參數需要考慮:覆蓋率和可重用性。覆蓋率指典型應用程序中多少部分是由特定類型的模塊組成的,而可重用性指特定類型的模塊在不同項目中可使用的可能性。
以下是理解覆蓋率和可重用性的幾個一般規則:
模塊層 | 示例 | 占典型應用程序 的百分比(覆蓋率) | 可重用性 |
基礎設施 定義和部署 | CI/CD管道 | 5% | 高 |
連接到遠程 服務 | 身份驗證 | 20% | 高 |
與基礎服務 相關的應用 程序邏輯 | 身份驗證 邏輯 | 20% | 高 |
樣式 | 樂高資產 | 5% | 高 |
數據庫模型 | 用戶表 | 10% | 中 |
屏幕布局 | 活動源UI | 15% | 中 |
與差異化功 能相關的應 用程序邏輯 | 產品推薦 算法 | 25% | 低 |
值得一提的是,應用程序中最大一部分代碼并不總是重用性最強的。這種區別可以幫助團隊理解在致力于模塊開發時如何做出正確的取舍。在CodeOps方法中,模塊的構建應該首先根據可重用性而不是覆蓋率來確定優先級,以確保實現的價值最大化。
為了理解CodeOps如何影響某個項目,不妨考慮采用CodeOps和不采用CodeOps的示例性的個人理財應用程序開發時間表:
不采用系統性重用
- 項目工期:28周
- 項目細分:
- 需求分析:2周
- 設計:2周
- 編碼:
- 身份驗證流程:3周
- 支付處理集成:4周
- 數據驗證功能:2周
- 報告功能:3周
- 額外的自定義功能:6周
- 測試和調試:4周
- 部署:2周
采用系統性重用(CodeOps方法)
項目工期:16周
項目細分:
- 需求分析:1周(重用的規范)
- 設計:1周(重用的設計)
- 編碼:
- 身份驗證模塊(重用):1周(集成和定制)
- 支付處理模塊(重用):1周(集成和定制)
- 數據驗證模塊(重用):1周(集成和定制)
- 報告模塊(重用):1周(集成和定制)
- 額外的自定義功能:5周(AI Copilot輔助))
- 測試和調試:3周(由于重用的認證模塊,代碼錯誤和不一致有所減少)
- 部署:2周
值得注意的是CodeOps的整個周期影響。它在整個過程中的多個節點為多個團隊提升了生產力,不需要這些團隊大幅改動工作流程。
系統性代碼重用的好處
實施系統性代碼重用帶來了幾個明顯的業務優勢,包括如下:
- 增強靈活性:通過允許開發團隊使用組織的代碼訪問預認證模塊的存儲庫,他們可以定制代碼,并創建完全符合獨特業務需求的應用程序。
- 保證一致性:系統性代碼重用確保了應用程序之間具有一致性。多個團隊使用相同的認證模塊可以最大限度地減少不一致性,并降低遇到錯誤、安全漏洞或兼容問題的風險。
- 加快學習:有了系統性代碼重用,開發人員可以從團隊成員和同事所做的工作中學習和完善。這創建了一個組織知識庫,縮短了新團隊成員的學習過程,并且在組織內打造一種倡導協作和創新的文化。
- 降低風險:經過嚴格測試和認證的代碼模塊是成熟可靠的,降低了開發和測試過程中或發布后出現關鍵安全或合規問題的可能性。
- 致力于創新:通過將開發團隊從不斷處理重復性的任務中解放出來,系統性代碼重用鼓勵他們將精力投入到令人興奮的創新上。他們可以分配更多的時間和資源,以構建獨特和有價值的功能,而且結果更易于預測,同時縮短產品上市時間,以生成新的收入或節省成本。
一種更好的構建方式
最終,擁抱系統性代碼可重用性的CodeOps方法通過顯著加快交付速度、提升生產力以及在競爭激烈的技術環境中促進創新和協作,徹底改變了自定義應用程序開發。新產品的構建和創新是技術界有趣的部分,這意味著利用CodeOps的組織不僅可以創造較之競爭對手的優勢,還可以提升內部團隊的生產力和士氣。
原文標題:CodeOps: Using LLMs and modular coding to accelerate development,作者:Anand Kulkarni