AI需要更多的工程紀律,而不是更少
本文討論了AI生成代碼能力的快速提升如何顛覆了軟件工程的經濟學,強調代碼變得廉價和可丟棄,而真正的產品是共享理解或生產。作者借鑑了Chad Fowler的“鳳凰架構”概念,主張將代碼視為緩存而非資產,並呼籲加強評估和理解能力。文章還指出,工程紀律比以往任何時候都更重要,因為AI帶來的變化要求重新思考代碼審查、架構設計等實踐。
本文作者Charity Majors回應了讀者對之前AI相關文章的反饋,深入探討了AI對軟件工程的影響。她指出,2025年AI代碼生成能力發生了根本性轉變,尤其是Opus 4.5和代理性框架的湧現,使得AI能夠生成與中級工程師水平相當的代碼,且速度更快、成本更低。這一變化徹底顛覆了代碼生產的經濟學:代碼從昂貴、需要精心維護的資產,變成了可快速生成、可丟棄的消費品。
Majors強調,儘管AI生成代碼的能力驚人,但這並不意味着可以放棄工程紀律。相反,工程紀律變得更加重要。她引用Chad Fowler的“鳳凰架構”概念,認為代碼應被視為“理解的材料化視圖”——當代碼易於生成時,它就不再是永久資產,而更像是一個緩存,只有在當前時才有用,過時就應丟棄。這種視角要求工程師更關注系統的理解、評估和驗證,而不是僅僅編寫代碼。
文章還回顧了從手動管理服務器到不可變基礎設施的轉變,指出這一歷史類比有助於理解當前AI對軟件工程的影響。過去,服務器被視為寵物,需要精心維護;而現在,基礎設施被視為 cattle,可以隨時替換。類似地,AI使得代碼可以被快速替換,但前提是我們必須理解代碼背後的行為、約束和不變性。Majors認為,這要求工程師將更多的精力投入到架構設計、評估和測試中,而不是僅僅依賴代碼本身。
作者進一步闡述了“刪除測試”的概念:試想刪除整個實現,大多數工程師會感到恐懼,因為這暴露了我們對其行為、失敗、不變量和正確性的無知。這些不是代碼問題,而是評估問題。當代碼是唯一承載知識的地方時,它變得珍貴。但在AI時代,當重寫變得便宜時,代碼就不再是資產,而是緩存的實現理解。這一轉變要求我們加強工程紀律,特別是在評估方面。
最後,作者呼籲不要重複2025年的錯誤:當時許多人對AI代碼生成持懷疑態度,但事實證明懷疑是錯誤的。面對AI的快速發展,工程師應保持開放心態,同時加強工程紀律,以確保在AI時代依然能夠構建可靠、可維護的軟件系統。她還提到,Honeycomb公司去年八月就發佈了AI指令,積極擁抱這一變革,並強調了基礎設施即代碼和不可變基礎設施的經驗教訓在AI時代的適用性。