《AI時代:碼農的涅盤重生》第162章 Code Review(1)

作者:Flint8·1個月前

週四上午十點,T廠AI平臺部每週例行的Code Review環節。

會議室的大屏上投射著林晨前兩天修改完的程式碼,旁邊還並排展示著另外兩位同事的待審分支。圍坐的六個人面前各擺著筆記本,桌上散落著咖啡罐和零食包裝袋,氣氛倒更像一場非正式的技術沙龍,而非嚴肅的審判庭。

先過林晨這版。王皓推了推眼鏡,點開了合併請求。作為團隊的直屬主管,王皓每週四的Code Review會議既是技術把關,也是團隊學習的場合。

林晨坐在長桌末端,脊背挺直,手指不自覺地摩挲著筆帽。這是他第一次正式參加團隊的Code Review會議。之前只是被動地收到模組原開發者王工的審查意見,自己修改後重新提交。而現在,他要面對面地聽同事們逐行審視他的程式碼,當場回應質疑。

這種感覺,和一個人埋頭寫程式碼、跑測試完全不同。更像是一場公開答辯,只不過臺下坐著的不是考官,而是並肩作戰的隊友。

整體結構清晰了,老趙先開了口,手指在大屏上劃過林晨重構後的批次特徵獲取邏輯,把序列呼叫改成批次查詢這個思路是對的,快取層的引入也合理。不過——

他放大了其中一段程式碼:這裡,快取失效策略用的是固定時間視窗,TTL設的多少?

預設的300秒。林晨回答。

300秒對於使用者畫像這種高頻更新資料來說偏長了。老趙直截了當,畫像特徵更新頻率大概是兩到三分鐘一次,你的快取可能在特徵已經變化了的情況下還在返回舊值。建議改成基於版本號的主動失效,或者至少把TTL壓到120秒以內,配合一個灰度驗證。

林晨點頭,在筆記本上飛速記下。這個他確實沒考慮到,當時只想著減少遠端呼叫次數,對快取一致性這一層想得粗了。

許悅接著指出了另一個問題:降級邏輯這裡,你用最近行為熱度池做兜底,邏輯本身沒問題,但權重係數的硬編碼方式容易維護出問題。你定義了常量,註釋也寫了來源,這個比第一次好多了——她笑了笑,不過我建議進一步把所有可配置引數抽到配置中心,這樣上線後可以動態調整,不需要重新部署。

好建議。林晨認真點頭。從寫死到常量,再到外部配置中心,這是工程化思維逐層遞進的過程。他在量化系統裡也幹過類似的事,只是到了T廠的規模,每一個配置項的改動都影響數億使用者,對靈活性和安全性的要求自然更高。

王皓翻到單元測試部分,掃了幾眼,抬頭看著林晨:測試覆蓋率86%,比上次好。不過我注意到你的降級測試用例裡,模擬外部服務超時的場景用的是固定延遲。實際線上環境,超時不是簡單的到點斷開,可能是先慢後斷,也可能間歇性恢復。你的測試能不能覆蓋這種不穩定的中間態?

林晨愣了一下。他確實沒有考慮到這種情況。你說得對,我只模擬了乾淨利落的超時,沒有考慮半死不活的模糊狀態。我回去補一組混沌測試用例,模擬延遲波動和間歇性恢復。

用Chaos sh或者自己寫個簡單的故障注入指令碼都行。王皓語氣隨意,但資訊密度很高,我們內部有封裝好的混沌工程工具包,Wiki上搜Chaos Toolkit,裡面有模板。

收到。林晨記下來。

整個Review持續了將近四十分鐘。六個人一共提出了十一處修改建議和六條最佳化方向,涉及快取策略、配置管理、測試覆蓋、日誌規範、監控埋點、灰度方案等方方面面。密度不可謂不大。

但林晨注意到了一個細節:沒有人用你這裡寫錯了這樣不對之類的措辭。取而代之的是這裡可以考慮……建議改成……你有沒有想過……。甚至有人會在指出問題的同時,主動分享自己之前踩過的類似坑。

當老趙指出快取TTL問題時,他補了一句:我上次做畫像服務快取的時候也踩過這個坑,300秒的快取導致推薦結果延遲了將近五分鐘才重新整理,差點被產品追著打。

當許悅提到配置中心時,她說:我們組之前有個專案就是硬編碼引數太多,後來每次調參都要重新部署,運維同事差點跟我們翻臉。

這些話不是在替林晨開脫,而是在說:這些坑我們都踩過,所以你現在注意到了,以後就不會再掉進去。

Code Review結束的時候,王皓做了個簡短總結:這版改進很大,架構和邏輯都沒問題。剛才提的幾點最佳化,這周內改完再提交一輪就行。還有誰有補充的?

沒有人再舉手。

散會之後,林晨沒有立刻回工位,而是在會議室多坐了一會兒,把筆記從頭到尾過了一遍。十一條修改建議,每一條背後都指向一個更深的工程問題:快取一致性、配置動態化、混沌工程、監控完善……這些問題在一個人寫的量化系統裡或許可以忽略或簡化,但在服務數億使用者的大廠系統裡,每一個都可能演變成線上事故。

他合上筆記本,長出一口氣。不是沮喪,而是一種被填滿的感覺。就像肌肉在訓練後那種酸脹的充實,意味著正在生長。

回到工位,他開啟內部Wiki,搜尋老趙提到的Chaos Toolkit和許悅說的配置中心文件。一邊看,一邊開始逐條規劃修改方案。

下午三點半,手機亮了一下,是組內的即時通訊群。許悅發了一張截圖,是今天Code Review的合照——王皓偷拍的,林晨正低著頭認真記筆記,旁邊老趙手裡端著保溫杯在說什麼,畫面抓得恰到好處。

配文是:歡迎新人首次Code Review存活照。

。戰再完改周這,恩之殺不位各謝:句一了回,了笑住不忍也晨林。侃調的活苟喜恭和包表串一出炸時頓裡群

。表的指拇大豎個了回趙老

。改修的一新了始開,盤鍵上落指手,姿坐下一了整調他。工開他促催在像,閃一閃一標游的輯編碼式程。上幕螢到回目,機手下放晨林

。圖地戰作的微張一像,佈釋註,錯頭箭,圖草構架的畫時論討們事同和他是面上,沒還跡筆克馬的上板白室議會。輝生熠熠下的後午在牆幕璃玻的園技科山南,外窗

。道軌的地落效高、全安能法想的好讓是,縛束是不範規——話句那士博陳起想他。會機的長次一是都,後背題問個一每。擊攻人是次一有沒但,題問個一十了出指被。weiveR edoC次一第的加參廠T在他是這

。是也,人的碼式程些這寫而。好更得變會都終最,化佳最被、疑質被、視審被碼式程行一每。遞傳和撞的慧智集種一是而,茬找是不來從,質本的weiveR edoC。義含的話句這了解理正真他在現

。碼式程的後改修行一第下敲始開他

猜你喜歡

同題材或同分類的其他作品。