HR當(dāng)場(chǎng)遞上聘書。我看了眼時(shí)間,從提交到審批通過,兩小時(shí)。
會(huì)議室響起掌聲。江成站起來鞠躬致謝。
我坐在角落,顧衍碰了碰我的手肘。他是我?guī)С鰜淼暮诵拈_發(fā),進(jìn)公司三年。
他什么都沒說,只是看著我。
會(huì)后在茶水間,團(tuán)隊(duì)八個(gè)人擠在一起。
“這也太假了。”顧衍把手機(jī)遞給我。
屏幕上是昨天發(fā)布會(huì)的現(xiàn)場(chǎng)視頻。客戶CTO**那段,江成卡殼的十幾秒被剪成了gif圖,在技術(shù)社區(qū)傳開了。
“他連負(fù)載均衡都答不上來。”另一個(gè)成員小聲說。
我接了杯水:“別討論這些。”
“可是……”顧衍還想說什么。
我轉(zhuǎn)身走了。
下午江成召集技術(shù)部門開會(huì)。
“項(xiàng)目文檔需要全部交接。”他坐在會(huì)議室主位,“程昭,你負(fù)責(zé)整理。”
“文檔在我電腦,明天整理。”我說。
回到工位,**上移動(dòng)硬盤。Git倉庫、設(shè)計(jì)文檔、溝通記錄,全部備份。
六百七十二次代碼提交記錄,每一次都有我的數(shù)字簽名。核心函數(shù)里藏著特殊的注釋格式,帶時(shí)間戳的邏輯標(biāo)記。
這是我立項(xiàng)時(shí)就埋下的習(xí)慣。
郵件提示音響起。客戶公司技術(shù)團(tuán)隊(duì)發(fā)來會(huì)議通知:明天下午兩點(diǎn)技術(shù)評(píng)審會(huì),要求程昭參加。
五分鐘后,江成走到我工位。
“明天客戶那邊的會(huì),我來對(duì)接。”他說,“你列席記錄就行。”
“好。”我點(diǎn)頭。
他轉(zhuǎn)身離開。走了兩步又回頭:“對(duì)了,把核心代碼的權(quán)限給我開一下。”
“IT部門統(tǒng)一管理。”我說,“需要的話找他們申請(qǐng)。”
江成臉色有點(diǎn)難看,但沒再說什么。
下班時(shí)我路過他辦公室。門沒關(guān)嚴(yán),透過縫隙能看到他對(duì)著電腦發(fā)愁。
屏幕上是我寫的代碼。密密麻麻的函數(shù)調(diào)用,他盯著看了很久。
窗戶玻璃倒映出他的臉,漲得通紅。
3
技術(shù)評(píng)審會(huì)在客戶公司開。
江成提前半小時(shí)到,我踩著點(diǎn)進(jìn)會(huì)議室。客戶CTO和三個(gè)工程師已經(jīng)坐在那里。
“**監(jiān),我們直接開始吧。”客戶CTO打開筆記本。
江成點(diǎn)頭,拿出準(zhǔn)備好的PPT。
第一個(gè)問題:API接口版本兼容性怎么處理?
江成翻開PPT,念了一段架構(gòu)說明。
客戶工程師皺眉:“我問的是具體實(shí)現(xiàn)方案。向下兼容的策略是什么?”
江成卡住了。
會(huì)議室安靜了十幾秒。
“這個(gè)……我們采用的是行業(yè)通用做法。”他說。
客戶工程師看向CTO。CTO看向我。
“程昭,你來說說。”
我放下筆:“版本號(hào)分三段,主版本、次版本、修訂號(hào)。向下兼容保留舊接口,同時(shí)開新路由。客戶端請(qǐng)求頭帶版本參數(shù),服務(wù)端根據(jù)版本號(hào)分發(fā)到對(duì)應(yīng)處理器。”
客戶工程師點(diǎn)頭:“那數(shù)據(jù)庫索引優(yōu)化呢?高并發(fā)場(chǎng)景下怎么避免鎖沖突?”
江成張嘴,又閉上了。
我接著說:“聯(lián)合索引覆蓋查詢字段,減少回表。熱點(diǎn)數(shù)據(jù)走Redis緩存,設(shè)置合理的過期時(shí)間。寫操作用樂觀鎖,CAS機(jī)制解決并發(fā)更新。”
精彩片段
天涼的《他在我的慶功宴上,說我只是個(gè)跑腿的》小說內(nèi)容豐富。在這里提供精彩章節(jié)節(jié)選:發(fā)布會(huì)上,江成對(duì)著兩百人宣布“這個(gè)項(xiàng)目核心技術(shù)全由我主導(dǎo)完成”,我的名字被排在成員列表第七位,標(biāo)注“輔助開發(fā)”。十八個(gè)月里六百七十二封客戶郵件全是我發(fā)的,他連客戶技術(shù)團(tuán)隊(duì)名字都叫不全。客戶CTO當(dāng)場(chǎng)提問核心算法,江成卡殼十幾秒答不上來,會(huì)后他姑父何棟直接限制我的服務(wù)器權(quán)限。三天后系統(tǒng)崩潰,客戶威脅啟動(dòng)兩千萬違約賠償,何棟帶著江成來求我:“公司遇到困難,大家要齊心協(xié)力。”我打開電腦,展示完整的代碼庫...