AI News HubLIVE
站内改写2 分鐘閱讀

清理AI明星開發者留下的爛攤子

本文探討了“明星開發者”現象及其與AI生成代碼的相似之處。明星開發者雖然技術高超但代碼難以維護,離職後留下複雜系統。AI工具如LLM以類似方式快速生成大量代碼,忽視可維護性,導致技術債務激增。作者建議謹慎使用AI,引導其生成小片段代碼,保持架構簡單,並強調手工編碼的價值。

來源Hacker News AI作者: BrunoBernardino

我們都有過與明星開發者共事的經歷。他們剛加入團隊時充滿活力,帶來新技術、新範式和新架構的絕妙想法,讓其他人感到落後和過時。他們重寫了公司大部分核心架構,引入了新的構建過程、工具和語言,拒絕大多數拉取請求,提高了對每個人的期望。沒有人理解他們寫的代碼,但沒人願意承認。所有最困難的任務都分配給明星開發者,他們完成得比任何人都快,儘管只有他們自己知道代碼如何組合在一起。幾年後,他們感到厭倦,離開去尋找更有挑戰性的項目。

當其他人接手他們的項目時,發現代碼難以理解。僅僅是讓代碼在筆記本電腦上運行就可能花上一週時間。一半代碼是用你不懂的語言寫的,另一半使用了聞所未聞的庫。你告訴老闆代碼需要重寫,但他不相信,因為這是明星開發者寫的。在清理代碼的過程中,你開始瀏覽招聘信息並幻想離開。

我幫助過許多團隊和機構清理明星開發者的遺留問題。我實際上很喜歡這種挑戰,就像解開一團纏繞的燈串。在這個過程中,我注意到一些模式:這些明星開發者熱愛編碼和學習新範式,總是將自己推向能力邊緣,寫出最巧妙的代碼,但很少關心他人是否能與之協作。

如今,人工智能帶來了類似的問題。每次有人啓動一個新聊天,就有可能給團隊增加一位明星開發者。AI代理不記得昨天做了什麼,能在幾分鐘內生成數萬行代碼,以超人的速度完成任務,但不關心代碼是否與系統其他部分兼容,也不關心繫統是否變得更易於理解。AI擁有一套最佳實踐工具箱,卻可能不適用於當前場景,它堅持用繁複的方法,即使複雜度的代價超過了收益。當要求它審查你的代碼時,它會列出一長串改進建議,其中許多你並不同意。標準被提高了,許多開發者覺得必須使用LLM,否則就會落後。然而,我認為最終被淘汰的是那些讓LLM編寫所有代碼的人。

面對大量生成的代碼,系統的複雜度可能呈指數級增長,以至於唯一理解系統的方式就是藉助LLM。開發者、團隊乃至整個公司都可能對生成式AI上癮併產生依賴。

清理數百個AI明星開發者的爛攤子並不比清理一個真人明星更有趣。至少真人明星有自己的設計思路並盡力而為,而基於“氛圍編碼”生成的代碼來自多次不同聊天和上下文,就像數百個明星開發者各自獨立編寫功能或修復缺陷,導致技術債務有時永遠無法償還。

要構建持久的軟件,有多種方式使用LLM而不讓它成為明星開發者。你可以主導工程,引導LLM一次生成一小段代碼,確保代碼易於團隊成員理解和協作。如果你迷失方向,無法理解LLM在做什麼或為什麼這麼做,請踩下剎車。放慢速度以確保生成的軟件質量,防止過度工程化,簡化和再簡化直至架構與問題複雜度匹配。有時也可以將LLM放回工具箱,自己動手編寫代碼。工藝始終掌握在我們手中,這是我們永遠無法外包給機器的事情。