周一早上,工程師陳斌提交了一個服務增加本地緩存的拉取請求。AI審查工具掃過差異,沒發(fā)現(xiàn)語法錯誤,還貼了個優(yōu)化標簽:“性能提升,建議合入。”架構師王磊看完卻直接打了回去,理由是緩存應該集中在API網(wǎng)關層,否則會破壞可觀測性和一致性。同一段改動,AI給的是通過,人給的卻是拒絕。這不是孤例——在越來越多的團隊把AI審查塞進流水線之后,這類“人與機器的分歧”正在高頻出現(xiàn)。
分歧的背后,不是AI不夠聰明,而是它能看見的東西被嚴格限定在代碼本身。語法、模式、常規(guī)缺陷排查,這些AI已經(jīng)做得足夠快且可靠。可一旦超出局部上下文,就出現(xiàn)了四個明確的盲區(qū):架構邊界、產(chǎn)品上下文、工程權衡,以及那種說不清但工程師能“聞”到的代碼氣味。這四個缺口,恰好橫在“代碼正確”和“軟件成功”之間。
1. 架構的生存空間不在差異里
AI靠一段窗口內(nèi)的代碼來做判斷。人類審查者看的則是系統(tǒng)。
一個看起來很干凈的抽象被提交。AI認為抽象得當,值得合入。人卻會停下來想三件事:這個抽象是不是在別處已經(jīng)存在?它會不會與長期架構方向產(chǎn)生微妙沖突?它引入的依賴將來解耦時會成為債務嗎?這些判斷需要的不是代碼塊,而是對倉庫歷史、團隊約定和演進路線的全局感知。
回到開頭的緩存例子。AI只看到函數(shù)里多了幾行緩存邏輯,自動認為這是性能優(yōu)化。但人類評估的是:這個服務是否應該自行決定緩存策略?緩存鍵的命名會不會污染共享存儲?如果改成集中緩存,監(jiān)控和排查是否更簡單?AI優(yōu)化局部,人推理全局。這個差別在大規(guī)模系統(tǒng)里會指數(shù)級放大。
2. 代碼里沒有產(chǎn)品上下文
AI審查的是正確性和風格。它不懂這段代碼為什么而寫。
一段代碼完全可能技術正確、測試通過、遵循最佳實踐,但仍然是錯誤的——不是語法錯,而是方向錯。人類審查者帶著產(chǎn)品意識上場,會追問:它和預期的用戶體驗對得上嗎?它和當前產(chǎn)品優(yōu)先級匹配嗎?一個可能很快下線的功能,值得投入這么重的架構嗎?
典型場景是特性標志的實現(xiàn)。AI可能會接受一個靈活可復用的標志系統(tǒng),覺得擴展性好。但熟悉產(chǎn)品路線圖的人會說:“這是兩周后就要刪掉的一次性實驗,保持最簡單的方式,別把它做成可以配置的框架。”AI默認代碼長久存在,人卻理解時間線。當代碼的生命周期只有兩周時,“過度設計”造成的傷害比“不夠優(yōu)雅”嚴重得多。
3. 權衡靠的是判斷,不是規(guī)則
工程決策常常在取舍之間,而非正確錯誤之間。AI能建議更高效的算法、更干凈的抽象、更低的重復率,但在“這個復雜度值得嗎”“團隊能維護得了嗎”“是不是在過早優(yōu)化”這類問題面前,它幾乎沒有判斷力。
經(jīng)驗豐富的審查者有時會主動放行“看起來有點亂”的代碼。這樣做有明確理由:它更容易調(diào)試;它跟團隊日常的寫法一致,不會增加認知負擔;它能降低新人上手的摩擦。這些都是在開發(fā)效率、維護成本和代碼美感之間做的實用主義選擇。AI傾向于理想解,人類選擇可行解。反而那種試圖把所有東西都抽象成優(yōu)雅工具庫的做法,會在迭代中被現(xiàn)實教育。
4. 聞不到的“代碼氣味”
老練的工程師對代碼有一種近乎直覺的感受:“這段代碼感覺不對。”哪怕沒有顯式規(guī)則被違反,這種信號依然會冒出來。
常見信號包括:命名風格不一致,可能隱藏著模塊歸屬不清的問題;控制流略顯別扭,也許暗示著未被覆蓋的邊界條件。這些都不算漏洞,也不會被靜態(tài)檢查抓出來。但人類審查者會感知到結構性張力,進而要求澄清意圖或重新梳理邏輯。AI目前缺乏這種捕捉“隱性風險”的能力,因為其訓練數(shù)據(jù)教它判斷的是對錯,而不是“隱隱不安”。
人與機器的組合不是替代,是補充
列出這些局限,不是要否定AI審查工具的價值。相反,那些自動化的語法檢查、模式識別和風格約束已經(jīng)成了很多團隊的標配,而且確實減少了大量低級錯誤。問題在于,許多人下意識地把AI審查的位置放得太高,甚至期待它替代對架構和產(chǎn)品有理解的人類評審。
目前的現(xiàn)實是:AI能在局部把代碼修得像教科書,但無法回答“這段代碼對系統(tǒng)意味著什么”。而這個問題,恰好是軟件從“能運行”到“能長期演進”必須跨越的。那種把AI通過等同于可發(fā)布的流水線配置,正在制造一種危險的舒適感——表面上沒有告警,實際上卻埋下耦合和復雜度的暗雷。
所以更健康的使用方式,是把AI當成第一道檢查者:它處理機械性、重復性的審核勞動,讓人從風格爭論中解脫出來,然后集中精力去關注架構一致性、產(chǎn)品意圖和長期維護成本。人與AI的協(xié)作不是此消彼長的替代關系,而是各自負責最擅長的部分。當團隊開始這樣用審查流程時,代碼庫里增加的不只是正確率,還有可持續(xù)性。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.