第4章
下午三點(diǎn)走在太陽底下,不是去藥店買胃藥,不是去便利店買泡面,不是蹲在馬路牙子上等測試環(huán)境的部署完成。是自由地、沒有任何目的地走在路上。陽光照在臉上,暖洋洋的,像一條剛從冰箱里拿出來的凍魚終于被放在了室溫里。
我沿著街走了十分鐘,進(jìn)了一家蘭州拉面館。以前加班的時(shí)候總點(diǎn)這家的外賣,面坨了,湯灑了,肉只有薄薄的兩片。今天坐在店里吃,面是剛拉出來的,湯是滾燙的,老板給我加了雙份肉——因?yàn)槲沂墙裉煜挛缥ㄒ坏目腿?。我吃得很慢,把每一根面都嚼透了才咽下去。吃完之后又要了一碗面湯,捧著碗慢慢喝。面湯的熱氣撲在臉上,比陽光還暖。
然后胖子的電話來了。
3 *UG
胖子不叫胖子,叫龐博。因?yàn)轶w重兩百一,全公司都叫他胖子。他是前端開發(fā),坐在我旁邊,兩年了。他寫的代碼比我規(guī)整得多,但從不加班。每天六點(diǎn)準(zhǔn)時(shí)走,老周拿他沒辦法,因?yàn)樗俏ㄒ灰粋€(gè)能把小程序搞順的人。
“深哥,你在哪兒?”胖子的聲音很急。
“蘭州拉面。吃了雙份肉。”
“你還吃面?!支付模塊崩了!用戶下單付了錢,訂單狀態(tài)不更新!現(xiàn)在**電話被打爆了,老周的臉比顯示器都綠!”
“跟我沒關(guān)系。我辭職了?!?br>“老周說,你寫的代碼里有個(gè)后門,能把公司的錢轉(zhuǎn)走?!?br>我手里的面湯碗停在半空?!笆裁春箝T?”
“他說你三個(gè)月前在支付模塊里埋了一段代碼,只要觸發(fā)某個(gè)條件,用戶的支付金額就會轉(zhuǎn)到一個(gè)外部賬戶。他說你離職就是因?yàn)榕卤话l(fā)現(xiàn)?!?br>面湯碗落在桌上,晃了幾下。三個(gè)月前。支付模塊。外部賬戶。我在腦子里飛速翻自己的代碼記憶——那三個(gè)月我確實(shí)改過支付模塊,改了無數(shù)版本,加過無數(shù)邏輯,其中有一段是——
我放下了碗。不是后門。是一個(gè)測試用的回調(diào)地址。當(dāng)時(shí)為了調(diào)試支付回調(diào),我把回調(diào)**L臨時(shí)改成了自己的測試服務(wù)器地址。后來改回去了嗎?我不確定。但就算沒改回去,那也只是回調(diào)地址,不是收款賬戶?;卣{(diào)地址只能接收支付結(jié)果通知,不能收錢。
“胖子,那不是后門。是測試回調(diào)?!?
我沿著街走了十分鐘,進(jìn)了一家蘭州拉面館。以前加班的時(shí)候總點(diǎn)這家的外賣,面坨了,湯灑了,肉只有薄薄的兩片。今天坐在店里吃,面是剛拉出來的,湯是滾燙的,老板給我加了雙份肉——因?yàn)槲沂墙裉煜挛缥ㄒ坏目腿?。我吃得很慢,把每一根面都嚼透了才咽下去。吃完之后又要了一碗面湯,捧著碗慢慢喝。面湯的熱氣撲在臉上,比陽光還暖。
然后胖子的電話來了。
3 *UG
胖子不叫胖子,叫龐博。因?yàn)轶w重兩百一,全公司都叫他胖子。他是前端開發(fā),坐在我旁邊,兩年了。他寫的代碼比我規(guī)整得多,但從不加班。每天六點(diǎn)準(zhǔn)時(shí)走,老周拿他沒辦法,因?yàn)樗俏ㄒ灰粋€(gè)能把小程序搞順的人。
“深哥,你在哪兒?”胖子的聲音很急。
“蘭州拉面。吃了雙份肉。”
“你還吃面?!支付模塊崩了!用戶下單付了錢,訂單狀態(tài)不更新!現(xiàn)在**電話被打爆了,老周的臉比顯示器都綠!”
“跟我沒關(guān)系。我辭職了?!?br>“老周說,你寫的代碼里有個(gè)后門,能把公司的錢轉(zhuǎn)走?!?br>我手里的面湯碗停在半空?!笆裁春箝T?”
“他說你三個(gè)月前在支付模塊里埋了一段代碼,只要觸發(fā)某個(gè)條件,用戶的支付金額就會轉(zhuǎn)到一個(gè)外部賬戶。他說你離職就是因?yàn)榕卤话l(fā)現(xiàn)?!?br>面湯碗落在桌上,晃了幾下。三個(gè)月前。支付模塊。外部賬戶。我在腦子里飛速翻自己的代碼記憶——那三個(gè)月我確實(shí)改過支付模塊,改了無數(shù)版本,加過無數(shù)邏輯,其中有一段是——
我放下了碗。不是后門。是一個(gè)測試用的回調(diào)地址。當(dāng)時(shí)為了調(diào)試支付回調(diào),我把回調(diào)**L臨時(shí)改成了自己的測試服務(wù)器地址。后來改回去了嗎?我不確定。但就算沒改回去,那也只是回調(diào)地址,不是收款賬戶?;卣{(diào)地址只能接收支付結(jié)果通知,不能收錢。
“胖子,那不是后門。是測試回調(diào)?!?
閱讀下一章(解鎖全文)
點(diǎn)擊即可暢讀完整版全部內(nèi)容
相關(guān)書籍
友情鏈接