依賴AI“氛圍編碼”兩年攢下的代碼爛攤子,讓我重新選擇手寫代碼
“我不能用這種代碼欺騙用戶。”
AI編碼工具的出現(xiàn),曾引發(fā)“機(jī)器能否替代人類開發(fā)者”的熱議:有人驚嘆其高效,認(rèn)為它會(huì)顛覆開發(fā)行業(yè);也有人擔(dān)憂其局限性,害怕影響代碼質(zhì)量與系統(tǒng)穩(wěn)定性。
近期,開發(fā)者mo在Hacker News分享了自己的經(jīng)歷:過去兩年,他幾乎全程用AI進(jìn)行“氛圍編碼”。從最初的驚艷,到把復(fù)雜任務(wù)交給模型,再到發(fā)現(xiàn)AI代碼局部合理卻難維持整體結(jié)構(gòu)和長(zhǎng)期可維護(hù)性,最終他放棄高度依賴AI,回歸手寫代碼。這篇反思在開發(fā)者社區(qū)引發(fā)強(qiáng)烈共鳴。
多數(shù)人接觸AI編碼的過程相似:先用它完成簡(jiǎn)單任務(wù),為之驚艷;再交復(fù)雜任務(wù),更加嘆服。
于是你在社交平臺(tái)X寫長(zhǎng)篇大論談“崗位替代”。
若能跨過這階段,你對(duì)AI編碼的理解已超99%的人。

用AI處理實(shí)際工作(非周末項(xiàng)目)的資深工程師,大多也有可預(yù)見的經(jīng)歷。
在驚嘆AI完成復(fù)雜任務(wù)的表現(xiàn)時(shí),你會(huì)忍不住想:能否給它分配更宏大的任務(wù)?甚至那個(gè)沒人愿接手的棘手重構(gòu)工作?
AI的能力遭到質(zhì)疑
但此時(shí),AI的“光環(huán)”開始出現(xiàn)裂痕。
一方面,你驚嘆它似乎能精準(zhǔn)理解需求;另一方面,它會(huì)犯令人沮喪的錯(cuò)誤,做出違背共識(shí)的決策。
你很快明白對(duì)AI模型生氣沒用,便將不盡如人意的輸出歸咎于自己:
“是我的問題。提示詞寫得太差,描述不夠具體?!?/p>
“只要說清需求,它就能實(shí)現(xiàn)。潛力無限啊?!?/p>
你這樣想。
于是打開Obsidian(筆記工具),撰寫詳盡需求文檔,用極致細(xì)節(jié)描述功能?;蛟S花半小時(shí)寫一整頁(yè)提示詞。
但你會(huì)發(fā)現(xiàn)“需求驅(qū)動(dòng)式開發(fā)”行不通?,F(xiàn)實(shí)中,設(shè)計(jì)文檔和需求說明是“活文檔”,會(huì)隨需求探索和落地不斷演變。
試想:在真實(shí)公司里,你花1小時(shí)寫好復(fù)雜架構(gòu)設(shè)計(jì)文檔,交給中級(jí)工程師(要求他不能和任何人討論),然后去度假——結(jié)果會(huì)怎樣?
AI工具無法在數(shù)周開發(fā)周期中,隨底層組件搭建迭代需求說明,還會(huì)一開始就做決策且不偏離。更糟的是,一旦AI覺得問題和解決方案超出掌控,大多會(huì)“擺爛”(不過現(xiàn)在這種情況少見了,AI會(huì)硬著頭皮“闖迷宮”)。
更致命的是,AI寫的代碼在撰寫和呈現(xiàn)時(shí),看起來合理又驚艷,甚至在代碼合并請(qǐng)求(PR)中也無懈可擊——畢竟你和AI都清楚“好PR該是什么樣”。
“雜亂代碼”越積越多
直到打開完整代碼庫(kù),逐行通讀最新版本后,才發(fā)現(xiàn)那些曾以為是早期模型殘留、會(huì)逐漸消失的問題——雜亂代碼(slop)依然存在。
那是純粹的雜亂。mo稱自己驚呆了,開始質(zhì)疑:“難道之前沒逐行審核每段代碼就合并?這些冗余垃圾從哪來?”
事后回想,早有征兆。
AI寫的代碼片段單獨(dú)看沒問題,符合自身邏輯和提示詞要求,但完全不考慮整體系統(tǒng),不重視架構(gòu)結(jié)構(gòu)性完整,甚至無視相鄰代碼的設(shè)計(jì)模式。
AI只是講了個(gè)“好聽的故事”。就像“氛圍寫作”小說:展示的幾個(gè)段落邏輯通順、語(yǔ)法正確,甚至能捕捉角色獨(dú)特風(fēng)格,但通讀整章會(huì)發(fā)現(xiàn)一團(tuán)糟——與整本書上下文、前后章節(jié)銜接格格不入。
通讀數(shù)月來AI依據(jù)詳盡需求寫出的累積代碼后,mo坦言:“這破玩意兒絕不能上線。我不能拿這種東西收費(fèi),更不能用它承諾保護(hù)用戶數(shù)據(jù)。”
“我不能用這種代碼欺騙用戶。”
最終,mo稱自己的大多數(shù)工作開始回歸手寫代碼。令人意外的是,“把所有因素都考慮進(jìn)去(不僅是每小時(shí)生成的代碼量),我比用AI時(shí)更快、更精準(zhǔn)、更有創(chuàng)造力、效率也更高”。
越來越多開發(fā)者開始克制使用“氛圍編碼”
對(duì)于mo的舉措,不少工程師甚至一線教學(xué)者都明確認(rèn)同。
在Hacker News上,網(wǎng)友recursivedoubts給出代表性分析:AI真正危險(xiǎn)的地方,不在于能做難事,而在于把“簡(jiǎn)單的事情”做得太好了。
這會(huì)讓新手程序員極易跳過本該反復(fù)打磨的基礎(chǔ)訓(xùn)練,想著“反正讓AI生成就行”。結(jié)果不僅基本功沒建立,還逐漸失去理解中等難度、復(fù)雜問題乃至更高層次抽象思考的機(jī)會(huì)——這些能力原本需要大量練習(xí),最終內(nèi)化為直覺。
這正是教學(xué)一線最直觀、最令人焦慮的變化。
recursivedoubts直言,作為計(jì)算機(jī)科學(xué)教師,這是他目前最擔(dān)心的問題之一。因此,他明確告訴學(xué)生:代碼必須自己寫,不能把“寫代碼”交給機(jī)器。學(xué)生階段練習(xí)的代碼本身不復(fù)雜,但正因如此,才更應(yīng)該親手完成——這是理解能力形成的關(guān)鍵過程。
網(wǎng)友leros從工程實(shí)踐角度給出直白判斷:他看到不少初級(jí)開發(fā)者熱捧“Vibe Coding”,而大多數(shù)資深工程師更多只是把AI當(dāng)作輔助工具——他本人也屬于后者。
leros表示,自己曾招聘并培養(yǎng)過大量剛畢業(yè)的初級(jí)工程師。通常,積累一年左右經(jīng)驗(yàn)后,這些人的生產(chǎn)力往往能提升到最初的20倍。他認(rèn)為,vibe coding的確能在短時(shí)間內(nèi)把新手推到5倍生產(chǎn)力,聽起來誘人,但問題在于,他們往往會(huì)被卡在這個(gè)水平,因?yàn)椴]有真正學(xué)到東西。結(jié)果一年之后,他們依然只是“5倍工程師”,而非本該成長(zhǎng)為的“20倍工程師”。
他也坦言,身邊一些從業(yè)1到3年的軟件工程師,對(duì)基礎(chǔ)問題的理解之淺,常常讓他意外。
類似的反思也出現(xiàn)在更多工程師的實(shí)際使用經(jīng)驗(yàn)中。Verdi表示:“我同意這個(gè)觀點(diǎn),而且在過去幾個(gè)月里也得出了相似的結(jié)論。”
他承認(rèn),把部分任務(wù)交給大模型節(jié)省的時(shí)間不可忽視,自己也會(huì)繼續(xù)使用AI。但他的態(tài)度已從最初的“100%投入vibe coding”,轉(zhuǎn)向更克制、審慎的使用方式——目前大概只占不到40%。原因主要集中在幾個(gè)方面:
模型生成的代碼幾乎不可避免地會(huì)引入技術(shù)債。
隨著時(shí)間推移,這些看似細(xì)微的問題會(huì)不斷累積,最終形成連LLM自己都難以理解、難以繼續(xù)演化的代碼庫(kù)。
與此同時(shí),開發(fā)者本人的理解能力也會(huì)被削弱,逐漸失去對(duì)代碼的內(nèi)在連接,變成一旦離開AI就幾乎無法排錯(cuò),這種狀態(tài)還會(huì)形成自我強(qiáng)化的循環(huán)。
最終,甚至在坐火車或飛機(jī)、無法使用AI的時(shí)候,生產(chǎn)力會(huì)直接歸零——你會(huì)發(fā)現(xiàn)自己已經(jīng)忘記該如何實(shí)現(xiàn)某些算法或語(yǔ)法,更缺乏對(duì)整個(gè)代碼庫(kù)的“心智模型”。
那么面向「氛圍編碼」,你使用的頻率如何?以及如何看待它對(duì)自身技術(shù)能力的影響。
本文來自微信公眾號(hào)“CSDN”,作者:mo;責(zé)編:蘇宓,36氪經(jīng)授權(quán)發(fā)布。
本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com



