譯者 | 李睿
審校 | 重樓
氛圍編碼(Vibe coding)是一種通過人工智能將自然語言轉化為代碼的開發方法,標志著軟件開發的一次重大演變。它加速了反饋周期,使編程民主化,但引發了對可維護性、安全性和技術債務的擔憂。
成功可能需要一種平衡的方法:使用氛圍編碼進行快速原型設計,同時保持生產代碼符號嚴格標準,讓開發人員從編碼者轉變為架構師和審核者或審計員。
一、氛圍編碼的定義和起源
在某種程度上,氛圍編碼代表了軟件開發方式的一次根本性轉變。開發人員無需輸入語法完美的代碼,而是使用氛圍編碼方法采用自然語言表達他們的意圖,讓人工智能工具將其翻譯成功能代碼。這種方法源于大型語言模型(LLM)和編碼助手快速發展的能力。
在今年 2 月提出氛圍編碼這一概念的人工智能研究員兼前OpenAI聯合創始人Andrej Karpathy觀察到編程本質的變化,他捕捉到開發人員開始利用人工智能將自然語言描述轉換為可執行代碼時的范式轉變,這一術語得到了廣泛的關注。
隨著這些人工智能編碼助手的成熟,Karpathy的見解也在進一步發展。他指出,“使用現代人工智能工具編碼,并不是真正的編碼——我只是看到一些事物,并對它們進行描述,然后運行人工智能工具,最后復制粘貼,它大部分都能正確實現。”這句話概括了氛圍編碼的本質:描述軟件需要做什么,并相信人工智能會正確實現,通常在實際的代碼生成過程中只需要最少的人為干預。
二、敏捷/產品管理視角
1.氛圍編碼與敏捷原則的完美契合
從敏捷的角度來看,氛圍編碼呈現出有趣的可能性。敏捷的核心原則“響應變化而不是遵循計劃”與氛圍編碼的靈活性完美契合。當產品需求發生變化時,采用自然語言描述新功能,并讓人工智能快速生成更新的代碼,在理論上可以加速適應過程。
氛圍編碼也與Scrum和其他敏捷框架的核心“檢查和適應”周期相呼應。開發團隊可以快速生成代碼,檢查結果,從反饋中學習,并快速迭代——可能會將傳統開發可能需要數天的時間壓縮到數小時內。
2.加快構建-測量-學習的周期
對于實踐精益方法的產品經理和創業者來說,氛圍編碼可能會極大加速“構建、衡量、學習”循環。創建功能原型與用戶一起測試不再需要編碼知識或大量投資。產品經理可以用自然語言描述功能,讓人工智能生成工作原型,并在當天將其呈現給用戶。
這種反饋循環的加速可能是氛圍編碼具有敏捷性的最有力的論據。當收集用戶反饋是主要目標時,產生有意義的響應的功能演示變得更有價值。
3.在盡量不犯錯的情況下快速行動
氛圍編碼可以使團隊以驚人的速度快速行動,但仍然存在可靠性問題。雖然人工智能生成的代碼通常“大部分都能實現”,但在“大部分”不夠好的生產環境中,這個限定符就會出現問題。然而,對于早期的驗證和原型來說,速度優勢可能超過質量問題。
創新的產品團隊可能會采用一種混合方法:使用氛圍編碼進行快速原型和初始驗證,然后在方向得到驗證之后,使用傳統編碼實踐重構關鍵組件。這種平衡的方法可以在降低風險的同時獲得速度優勢。
三、技術視角
1.質量和可維護性問題
專業開發人員使用氛圍編碼方法對代碼質量提出了一些擔憂的問題。人工智能生成的代碼雖然功能齊全,但往往缺乏經驗豐富的開發人員為項目帶來深思熟慮的架構和對技術卓越的奉獻精神。
正如行業專家Toby Devonshire所警告的那樣:“氛圍編碼一開始可能很有趣,但當你需要調試時,可能會出現問題。”這種擔憂是有道理的:原型可能會在沒有嚴格測試和文檔的情況下變成充滿技術債務的生產系統。
這種影響可能會導致實現不充分、不必要的依賴關系或適用于特定用例但在條件發生變化時中斷的脆弱代碼。例如,行業專家Jo Bergum報告說:“我使用氛圍編碼的經驗是,它對最小可行性產品(MVP)來說很棒,但對于在更大的代碼庫中進行重寫則令人沮喪。當Claude開始偽造實現以使測試通過,或者通過實現模擬來解決依賴問題時,我感覺還有好幾個月的工作要做。”
因此,可維護性可能是最大的技術挑戰。當開發人員需要在幾個月后修改人工智能生成的代碼時,他們可能很難理解當初的實現選擇。如果沒有清晰的文檔解釋為什么要采用某些方法,維護工作就會變得非常困難。
2.安全漏洞
安全是另一個主要問題。人工智能編碼助手主要優化功能,而不是安全性,這可能會引入開發人員很快就能發現的漏洞。雖然一些人工智能工具包含安全檢查功能,但它們很少與以安全為中心的開發人員執行的全面風險分析相匹配。這些問題對于處理敏感數據或金融事務的應用程序尤為重要。如果沒有廣泛的人工審查和增強,氛圍編碼可能不適合這些用例。
3.技術債務加速
從技術角度來看,也許最令人擔憂的是氛圍編碼會加速技術債務積累。傳統的開發方法通常需要仔細考慮架構,以盡量減少返工。氛圍編碼強調即時功能而不是長期可持續性,這可能會在未來產生巨大的成本。
這個過程類似于為代碼庫的未來申請高息貸款。即時的生產力提升讓人覺得很有價值,但最終,技術債務會以維護挑戰、重構需求和擴展困難等形式到期需要償還。
四、企業家與經濟視角
1.軟件創建民主化
氛圍編碼最有前景的方面之一是它有可能使軟件創建民主化。擁有豐富的行業知識但技術有限的企業家現在可以將他們的想法轉化為可工作的軟件,而無需首先學習編碼或雇傭成本昂貴的開發團隊。
這種可訪問性可能會激發之前被排除在外的群體的創新能力。例如,醫療保健、教育、農業和其他領域的領域專家可能會創建專門工具來解決傳統軟件公司忽視的需求。
2.降低準入門檻
降低軟件開發準入門檻的經濟意義是重大的。初創公司可以用較小的初始投資啟動,從而延長其運營周期,增加他們在資金耗盡之前找到適合產品進入市場的機會。這一優勢可能會導致軟件生態系統中出現更多樣化的實驗。
對于成熟的公司來說,氛圍編碼可能會使傳統上與軟件開發分離的部門進行創新。市場營銷團隊可以對面向客戶的工具進行原型設計,運營人員可以構建流程自動化,銷售代表可以創建自定義演示,而不依賴于開發團隊。(需要注意的是,這種觀點可能會在不同的層面上帶來一些問題,從戰略一致性到銷售尚未存在的產品功能。)
3.氛圍編碼和開發人員的工作保障
一些批評人士認為,對氛圍編碼的抵制部分源于開發人員對工作保障的擔憂。如果非技術團隊成員可以獨立創建功能軟件,這對專業開發人員意味著什么?
這種觀點簡化了實際情況。雖然氛圍編碼可能會減少對基本實現工作的需求,但它可能會提高開發人員的價值,這些開發人員可以構建復雜的系統,優化性能,確保安全性,并隨著時間的推移維護大型代碼庫。這個角色可能會發生變化,但專業開發知識仍然至關重要。
五、平衡的觀點和可能的未來
1.尋找合適的氛圍編碼應用場景
一個平衡的評估表明,氛圍編碼在敏捷環境中具有合理的應用場景,特別是用于:
- 快速原型制作和概念驗證;
- 安全要求有限的內部工具;
- 迭代速度超過長期可維護性的項目;
- 技術資源有限的環境。
與此相反,氛圍編碼不太適合以下應用場景:
- 具有嚴格安全要求的系統;
- 需要最佳性能的應用程序;
- 預計會經歷重大演變的長期產品;
- 符合監管合規要求的項目。
2.緩解策略
因此,將氛圍編碼與敏捷工作流集成的團隊采用混合方法似乎是有益的:
- 分階段整合。從非關鍵任務(如實用功能)開始,然后擴展到功能開發;
- 人工智能增強。像Snyk這樣的工具現在提供工作坊來審核人工智能生成的漏洞代碼;
- 護欄。通過提示執行編碼標準(例如,“重構可讀性”)可以減少技術債務。
3.專業開發人員角色的演變
隨著氛圍編碼能力的成熟,專業開發人員的角色可能會發生轉變而不是減少。開發人員可能會從編寫每一行代碼轉變為:
- 定義和維護架構標準;
- 審核和完善人工智能生成的代碼;
- 創建人工智能可以安全運行的護欄和框架;
- 專注于對于人工智能來說仍然具有挑戰性的復雜問題。
這種演變反映了軟件開發中的歷史模式。就像高級語言和框架抽象了機器碼和內存管理一樣,氛圍編碼也可以抽象掉常規的實現細節,從而使開發人員能夠專注于更高層次的問題。
4.氛圍編碼與敏捷實踐的整合
具有遠見的敏捷開發團隊可能會將氛圍編碼整合到現有的工作流中,而不是完全取代傳統的開發。例如:
- 在專注于概念驗證的初始沖刺中使用氛圍編碼;
- 讓產品負責人或設計師創建初始實現,供開發人員改進;
- 采用人工智能配對編程,開發人員用人類專業知識指導人工智能代碼生成。
這種整合承認了氛圍編碼的優勢和局限性,在每種方法中都能提供最大的價值。
結論
氛圍編碼既不是一場徹底的革命,也不是一種時尚潮流,而是軟件創建方式的一種演變。它與敏捷所強調的快速迭代和用戶反饋相契合,同時挑戰了傳統的代碼質量和可維護性觀念。
愿意將氛圍編碼深思熟慮地整合到他們的開發工作流程中的組織,可以認識到它在哪里增加了價值,以及傳統方法在哪里仍具有優勢——將在速度和可訪問性方面獲得顯著優勢。那些完全忽視它的組織和個人可能會失去創新機會,而那些不加批判地接受氛圍編碼的組織或個人可能會造成不可持續的技術債務。
與大多數技術進步一樣,最成功的方法是在明確原則的指導下采取務實的做法,而不是全盤接受或拒絕。雖然氛圍編碼不太可能取代傳統的開發,但它已經開始以一種不可逆轉的方式對傳統軟件開發領域進行深刻的變革。
原文標題:Is Vibe Coding Agile or Merely a Hype?,作者:Stefan Wolpers