AI 輔助軟體工程的巴別塔隱喻
AI 輔助軟體工程的巴別塔隱喻
AI Agent 可能導致共享架構理解的崩解
AI 輔助程式設計極大地提高了個人開發者修改程式碼庫的速度,但它威脅到了共享的概念性理解——即讓團隊能夠在大規模軟體專案中進行協作的「共享語言」。雖然 Agent 可以生成功能性的程式碼並通過測試,但它們消除了必要的摩擦力(例如程式碼審查和技術討論),而這些摩擦力在歷史上一直是用來同步團隊對系統心理模型的關鍵。
軟體專案的「共享語言」
在大規模工程中,主要的限制並非程式碼產出的速度,而是人們協調其對系統理解的能力。這種共享語言並非像 Python 或英文這樣的程式語言或口語,而是一種對以下內容的集體理解:
- 概念意義: 特定術語和抽象概念在該領域中實際代表的意義。
- 系統邊界: 一個模組何時結束,另一個模組何時開始。
- 不變量: 哪些規則必須始終保持正確,以維持系統的穩定性。
- 所有權與意圖: 誰負責特定的組件,以及為什麼系統被設計成目前的形狀。
這種理解通常是透過「生產性摩擦」鍛造出來的:閱讀他人的程式碼、提出澄清問題,以及在程式碼審查期間為一項變更進行辯護的過程。這種摩擦確保了開發者的心理模型與團隊其他成員的心理模型保持一致。
「Vibecoding」與 Agentic Friction 的悖論
AI Agent 消除了迫使人類進行同步的摩擦力。開發者現在可以要求 Agent 實作一個功能(例如,新增 OAuth 或快取),而無需與受影響模組的所有者進行任何討論。由於 Agent 可以生成看似合理的解釋,且程式碼可能可以編譯並通過測試,因此變更被合併,而人類開發者卻從未獲得該系統部分的共享心理模型。
這導致了一種狀態:即使共享的架構語言正在崩解,建設仍在繼續——「塔樓持續上升」——系統變成了一堆在局部合理但在全局不連貫的變更集合。
對於「不連貫的塔樓」的觀點
社群討論強調了與這種軟體生產模式轉變相關的幾種風險和潛在的緩解措施:
智慧的喪失: 有人認為 AI 擁有「零智慧的智能」,這意味著它可以解決一個局部的技術問題,而無需理解該解決方案是否適合專案的長期健康發展。
「Lisp Curse」的類比: 這與「Lisp Curse」有類似之處,即一種語言使得建立個人化工具變得如此容易,以至於開發者失去了與他人共同開發通用、標準化產物的動機。
未經審查的程式碼之恐怖: 開發者指出,「vibecoding」(憑感覺/提示詞進行編碼,而沒有深入審查)往往會導致「恐怖