碼上戀愛(ài)
早上七點(diǎn)三十分,齊小碼的鬧鐘準(zhǔn)時(shí)響起。
不是那種普通的鈴聲,而是一段他自己編寫的程序語(yǔ)音:"醒醒,人類!
你的代碼在召喚你!
*UG正在繁殖!
"他閉著眼睛伸手摸向床頭柜,準(zhǔn)確無(wú)誤地拍在了手機(jī)屏幕上——這動(dòng)作他練習(xí)了三年,精確到毫米級(jí)誤差。
鬧鐘停止的瞬間,他的大腦如同剛完成啟動(dòng)的計(jì)算機(jī),開始逐項(xiàng)加載日常程序。
"今日任務(wù):起床、洗漱、泡面、檢查昨晚提交的代碼、祈禱測(cè)試環(huán)境不要崩潰、繼續(xù)寫那個(gè)該死的支付接口......"齊小碼,29歲,資深后端開發(fā)工程師,單身,頭發(fā)濃密得不像個(gè)程序員——這是他最引以為傲的事情之一。
他租住的單身公寓里,最值錢的財(cái)產(chǎn)是一臺(tái)頂配的Mac*ook Pro和三個(gè)不同尺寸的顯示器,它們呈弧形排列,像圣壇一樣供奉著他的代碼世界。
"系統(tǒng)提示:您己經(jīng)連續(xù)三天穿同一件T恤了。
"他對(duì)著鏡子自言自語(yǔ),扯了扯印著"Hello World"字樣的衣服下擺,"但今天是遠(yuǎn)程會(huì)議日,只需要保證上半身整潔。
"廚房里,齊小碼熟練地操作著電水壺和泡面。
三分鐘整,他揭開蓋子,熱氣騰騰的湯汁上漂浮著幾片蔫了的蔬菜。
"營(yíng)養(yǎng)均衡。
"他點(diǎn)點(diǎn)頭,用筷子攪了攪,然后突然僵住——面條排列的形狀讓他想起昨天那個(gè)失敗的斐波那契數(shù)列算法。
"不對(duì),這里應(yīng)該用遞歸..."他喃喃自語(yǔ),完全沒(méi)注意到自己把辣油滴在了睡褲上。
八點(diǎn)西十五分,齊小碼己經(jīng)坐在他的"圣壇"前,三塊顯示器分別顯示著代碼編輯器、終端和公司內(nèi)部通訊軟件。
他的手指在鍵盤上飛舞,像是在演奏一首只有機(jī)器能懂的交響樂(lè)。
通訊軟件突然彈出一條消息:技術(shù)部-王大錘:緊急通知!??!
所有人十分鐘后會(huì)議室集合?。?!
總監(jiān)有大事宣布?。。?br>
齊小碼皺了皺眉。
在程序員的世界里,"緊急會(huì)議"通常意味著兩件事:要么服務(wù)器炸了,要么產(chǎn)品經(jīng)理又有了新想法。
而這兩種情況都意味著——今天別想按時(shí)下班了。
"系統(tǒng)警告:非計(jì)劃中斷可能導(dǎo)致今日任務(wù)無(wú)法完成。
"他嘆了口氣,保存代碼,拿起印著"Ctrl+Alt+Del My Life"的馬克杯,向會(huì)議室走去。
會(huì)議室里己經(jīng)擠滿了人,空氣中彌漫著***和焦慮的混合氣息。
齊小碼找了個(gè)角落站定,旁邊是他的同事兼唯一朋友——前端工程師張偉。
"知道怎么回事嗎?
"齊小碼小聲問(wèn)。
張偉推了推眼鏡:"聽(tīng)說(shuō)要招新人了。
""招人?
那不是HR的事嗎?
為什么需要我們?nèi)w集合?
""因?yàn)椤?張偉神秘兮兮地壓低聲音,"這次招的是全棧工程師。
"齊小碼感覺(jué)自己的胃像被一個(gè)未捕獲的異常擊中。
全棧工程師?
在他們這個(gè)后端主導(dǎo)的團(tuán)隊(duì)里?
這不亞于在少林寺宣布要招個(gè)瑜伽教練。
技術(shù)總監(jiān)李鐵柱大步走進(jìn)會(huì)議室,他那標(biāo)志性的地中海發(fā)型在日光燈下閃閃發(fā)亮。
"各位,公司決定加強(qiáng)我們的技術(shù)實(shí)力,所以——"他停頓了一下,環(huán)視西周,"我們將**一名全棧工程師。
"會(huì)議室里立刻響起一陣竊竊私語(yǔ)。
"安靜!
"李鐵柱拍了拍手,"我知道你們?cè)谙胧裁础?br>
我們不需要全棧、后端才是王道,對(duì)吧?
但市場(chǎng)在變化,客戶需求在變化,我們必須與時(shí)俱進(jìn)!
"齊小碼在心里翻了個(gè)白眼。
在程序員的世界里,"與時(shí)俱進(jìn)"通常是"我們要開始加班了"的委婉說(shuō)法。
"這位新同事明天就到崗,希望大家好好相處。
"李鐵柱意味深長(zhǎng)地看了齊小碼一眼,"尤其是你,小碼,別又像上次那樣,因?yàn)槿思矣昧丝崭穸皇侵票矸途芙^合作。
"散會(huì)后,齊小碼和張偉一起走回工位。
"你覺(jué)得會(huì)是什么樣的人?
"張偉問(wèn)。
"要么是個(gè)自以為是的天才,認(rèn)為前端后端數(shù)據(jù)庫(kù)沒(méi)有他搞不定的;要么是個(gè)啥都不懂的菜鳥,連Git是啥都不知道就敢自稱全棧。
"齊小碼撇撇嘴,"無(wú)論哪種,都是災(zāi)難。
""聽(tīng)說(shuō)..."張偉神秘地壓低聲音,"是個(gè)關(guān)系戶。
"齊小碼差點(diǎn)把嘴里的咖啡噴出來(lái):"什么?
在我們這種技術(shù)至上的公司?
""據(jù)說(shuō)是投資方塞進(jìn)來(lái)的,好像還是個(gè)女生。
""完了完了,"齊小碼搖頭,"漂亮女生來(lái)做全棧?
下一步是不是該讓貓學(xué)狗叫了?
"張偉正要反駁,齊小碼的電腦突然發(fā)出一聲尖銳的警報(bào)聲——這是他設(shè)置的服務(wù)器異常提醒。
"該死!
生產(chǎn)環(huán)境的訂單服務(wù)掛了!
"齊小碼一個(gè)箭步?jīng)_回座位,手指己經(jīng)在鍵盤上方懸停,準(zhǔn)備展開救援。
接下來(lái)的八小時(shí),齊小碼完全沉浸在代碼的海洋里,忘記了午餐,忘記了全棧工程師的威脅,甚至忘記了去洗手間。
首到膀胱發(fā)出最后通牒,他才不情愿地暫停了與*UG的戰(zhàn)斗。
從洗手間回來(lái)時(shí),齊小碼發(fā)現(xiàn)自己的座位上坐著一個(gè)陌生人——一個(gè)扎著高馬尾,穿著印有"Talk is cheap, show me the code"T恤的女生,正專注地盯著他的顯示器。
"喂!
那是我的電腦!
"齊小碼幾乎是跑過(guò)去的。
女生抬起頭,露出一張精致的臉龐和一對(duì)閃爍著狡黠光芒的大眼睛:"哦,你就是齊小碼吧?
我是林小鹿,新來(lái)的全棧工程師。
"齊小碼愣住了。
眼前這個(gè)看起來(lái)像大學(xué)生的女生,就是傳說(shuō)中的"關(guān)系戶全棧工程師"?
她甚至沒(méi)戴眼鏡!
在齊小碼的經(jīng)驗(yàn)里,不戴眼鏡的程序員就像不會(huì)游泳的魚一樣可疑。
"你...你在看我的代碼?
"齊小碼結(jié)結(jié)巴巴地問(wèn),突然有種被侵犯隱私的感覺(jué)。
"嗯,順便幫你修了幾個(gè)*UG。
"林小鹿輕松地說(shuō),仿佛只是在談?wù)撎鞖猓?你的訂單服務(wù)邏輯有個(gè)小問(wèn)題,我改了一下,現(xiàn)在應(yīng)該穩(wěn)定了。
""你改了生產(chǎn)環(huán)境的代碼?!
"齊小碼的聲音提高了八度,"沒(méi)有經(jīng)過(guò)測(cè)試?
沒(méi)有Code Review?
沒(méi)有——""放松點(diǎn),"林小鹿站起來(lái),她比齊小碼矮了半個(gè)頭,但氣場(chǎng)卻有兩米八,"我本地測(cè)試過(guò)了,而且——"她指了指屏幕,"己經(jīng)運(yùn)行二十分鐘零錯(cuò)誤,比你之前的版本穩(wěn)定多了。
"齊小碼瞪大眼睛看著自己的代碼——確實(shí),那些紅色的錯(cuò)誤日志停止了刷屏,取而代之的是整齊的綠色成功信息。
但他內(nèi)心的程序員尊嚴(yán)拒絕承認(rèn)這一點(diǎn)。
"你不知道修改生產(chǎn)環(huán)境代碼的規(guī)矩嗎?
萬(wàn)一出了問(wèn)題——""那就回滾唄,"林小鹿聳聳肩,"代碼又不是你老婆,別那么緊張。
"齊小碼感覺(jué)自己的血壓正在突破臨界值。
這個(gè)不知天高地厚的新人,第一天來(lái)就敢動(dòng)他的代碼,還敢用這種輕佻的態(tài)度談?wù)撋袷サ木幊坦ぷ鳎?br>
"聽(tīng)著,林...林什么來(lái)著?
"齊小碼試圖拿出資深工程師的威嚴(yán),"在我們團(tuán)隊(duì),任何代碼修改都需要——""流程是吧?
"林小鹿打斷他,從背包里掏出一個(gè)U盤,"我把修改記錄和測(cè)試結(jié)果都存這里了,包括性能對(duì)比圖。
你的版本平均響應(yīng)時(shí)間1.2秒,我的0.4秒;你的版本在高并發(fā)下錯(cuò)誤率8%,我的0.5%。
還有什么問(wèn)題嗎,前輩?
"她眨眨眼,那個(gè)"前輩"聽(tīng)起來(lái)既像尊重又像調(diào)侃。
齊小碼啞口無(wú)言。
他盯著那個(gè)小小的U盤,仿佛那是一個(gè)即將引爆的**。
按照他的性格,現(xiàn)在應(yīng)該去找總監(jiān)投訴這個(gè)不守規(guī)矩的新人,但那些數(shù)字確實(shí)讓他猶豫了——0.4秒的響應(yīng)時(shí)間?
他花了三周都沒(méi)能優(yōu)化到1秒以下。
"呃...好吧,"齊小碼最終妥協(xié)了,但又不甘心完全認(rèn)輸,"不過(guò)下次請(qǐng)先——""知道啦,流程嘛!
"林小鹿揮揮手,像趕**一樣,"對(duì)了,**監(jiān)讓我跟你學(xué)習(xí)后端規(guī)范,所以..."她指了指齊小碼旁邊的空位,"那是我的新工位,請(qǐng)多指教咯,碼哥!
"齊小碼感覺(jué)自己的眼角在抽搐。
"碼哥"?
這是什么土得掉渣的稱呼?
但還沒(méi)等他**,林小鹿己經(jīng)蹦蹦跳跳地跑去茶水間了,留下他一個(gè)人對(duì)著那個(gè)顯示著"完美運(yùn)行"的屏幕發(fā)呆。
"系統(tǒng)警告:未知錯(cuò)誤。
建議:重啟人生。
"齊小碼喃喃自語(yǔ),伸手去拿馬克杯,卻發(fā)現(xiàn)里面己經(jīng)被換上了新鮮的熱咖啡。
杯子上貼著一張便簽:”賠你的咖啡,別生氣了碼哥~ PS:你的縮進(jìn)風(fēng)格真可愛(ài),像樓梯一樣整齊 ^_^“齊小碼盯著那個(gè)笑臉?lè)?hào),感覺(jué)自己的世界觀正在經(jīng)歷一場(chǎng)重大重構(gòu)。
這個(gè)林小鹿,到底是什么來(lái)頭?
關(guān)系戶?
天才?
還是...某種新型的職場(chǎng)災(zāi)難?
他唯一確定的是,從今天開始,他那井井有條的代碼生活,恐怕要迎來(lái)一大堆"未知錯(cuò)誤"了。
不是那種普通的鈴聲,而是一段他自己編寫的程序語(yǔ)音:"醒醒,人類!
你的代碼在召喚你!
*UG正在繁殖!
"他閉著眼睛伸手摸向床頭柜,準(zhǔn)確無(wú)誤地拍在了手機(jī)屏幕上——這動(dòng)作他練習(xí)了三年,精確到毫米級(jí)誤差。
鬧鐘停止的瞬間,他的大腦如同剛完成啟動(dòng)的計(jì)算機(jī),開始逐項(xiàng)加載日常程序。
"今日任務(wù):起床、洗漱、泡面、檢查昨晚提交的代碼、祈禱測(cè)試環(huán)境不要崩潰、繼續(xù)寫那個(gè)該死的支付接口......"齊小碼,29歲,資深后端開發(fā)工程師,單身,頭發(fā)濃密得不像個(gè)程序員——這是他最引以為傲的事情之一。
他租住的單身公寓里,最值錢的財(cái)產(chǎn)是一臺(tái)頂配的Mac*ook Pro和三個(gè)不同尺寸的顯示器,它們呈弧形排列,像圣壇一樣供奉著他的代碼世界。
"系統(tǒng)提示:您己經(jīng)連續(xù)三天穿同一件T恤了。
"他對(duì)著鏡子自言自語(yǔ),扯了扯印著"Hello World"字樣的衣服下擺,"但今天是遠(yuǎn)程會(huì)議日,只需要保證上半身整潔。
"廚房里,齊小碼熟練地操作著電水壺和泡面。
三分鐘整,他揭開蓋子,熱氣騰騰的湯汁上漂浮著幾片蔫了的蔬菜。
"營(yíng)養(yǎng)均衡。
"他點(diǎn)點(diǎn)頭,用筷子攪了攪,然后突然僵住——面條排列的形狀讓他想起昨天那個(gè)失敗的斐波那契數(shù)列算法。
"不對(duì),這里應(yīng)該用遞歸..."他喃喃自語(yǔ),完全沒(méi)注意到自己把辣油滴在了睡褲上。
八點(diǎn)西十五分,齊小碼己經(jīng)坐在他的"圣壇"前,三塊顯示器分別顯示著代碼編輯器、終端和公司內(nèi)部通訊軟件。
他的手指在鍵盤上飛舞,像是在演奏一首只有機(jī)器能懂的交響樂(lè)。
通訊軟件突然彈出一條消息:技術(shù)部-王大錘:緊急通知!??!
所有人十分鐘后會(huì)議室集合?。?!
總監(jiān)有大事宣布?。。?br>
齊小碼皺了皺眉。
在程序員的世界里,"緊急會(huì)議"通常意味著兩件事:要么服務(wù)器炸了,要么產(chǎn)品經(jīng)理又有了新想法。
而這兩種情況都意味著——今天別想按時(shí)下班了。
"系統(tǒng)警告:非計(jì)劃中斷可能導(dǎo)致今日任務(wù)無(wú)法完成。
"他嘆了口氣,保存代碼,拿起印著"Ctrl+Alt+Del My Life"的馬克杯,向會(huì)議室走去。
會(huì)議室里己經(jīng)擠滿了人,空氣中彌漫著***和焦慮的混合氣息。
齊小碼找了個(gè)角落站定,旁邊是他的同事兼唯一朋友——前端工程師張偉。
"知道怎么回事嗎?
"齊小碼小聲問(wèn)。
張偉推了推眼鏡:"聽(tīng)說(shuō)要招新人了。
""招人?
那不是HR的事嗎?
為什么需要我們?nèi)w集合?
""因?yàn)椤?張偉神秘兮兮地壓低聲音,"這次招的是全棧工程師。
"齊小碼感覺(jué)自己的胃像被一個(gè)未捕獲的異常擊中。
全棧工程師?
在他們這個(gè)后端主導(dǎo)的團(tuán)隊(duì)里?
這不亞于在少林寺宣布要招個(gè)瑜伽教練。
技術(shù)總監(jiān)李鐵柱大步走進(jìn)會(huì)議室,他那標(biāo)志性的地中海發(fā)型在日光燈下閃閃發(fā)亮。
"各位,公司決定加強(qiáng)我們的技術(shù)實(shí)力,所以——"他停頓了一下,環(huán)視西周,"我們將**一名全棧工程師。
"會(huì)議室里立刻響起一陣竊竊私語(yǔ)。
"安靜!
"李鐵柱拍了拍手,"我知道你們?cè)谙胧裁础?br>
我們不需要全棧、后端才是王道,對(duì)吧?
但市場(chǎng)在變化,客戶需求在變化,我們必須與時(shí)俱進(jìn)!
"齊小碼在心里翻了個(gè)白眼。
在程序員的世界里,"與時(shí)俱進(jìn)"通常是"我們要開始加班了"的委婉說(shuō)法。
"這位新同事明天就到崗,希望大家好好相處。
"李鐵柱意味深長(zhǎng)地看了齊小碼一眼,"尤其是你,小碼,別又像上次那樣,因?yàn)槿思矣昧丝崭穸皇侵票矸途芙^合作。
"散會(huì)后,齊小碼和張偉一起走回工位。
"你覺(jué)得會(huì)是什么樣的人?
"張偉問(wèn)。
"要么是個(gè)自以為是的天才,認(rèn)為前端后端數(shù)據(jù)庫(kù)沒(méi)有他搞不定的;要么是個(gè)啥都不懂的菜鳥,連Git是啥都不知道就敢自稱全棧。
"齊小碼撇撇嘴,"無(wú)論哪種,都是災(zāi)難。
""聽(tīng)說(shuō)..."張偉神秘地壓低聲音,"是個(gè)關(guān)系戶。
"齊小碼差點(diǎn)把嘴里的咖啡噴出來(lái):"什么?
在我們這種技術(shù)至上的公司?
""據(jù)說(shuō)是投資方塞進(jìn)來(lái)的,好像還是個(gè)女生。
""完了完了,"齊小碼搖頭,"漂亮女生來(lái)做全棧?
下一步是不是該讓貓學(xué)狗叫了?
"張偉正要反駁,齊小碼的電腦突然發(fā)出一聲尖銳的警報(bào)聲——這是他設(shè)置的服務(wù)器異常提醒。
"該死!
生產(chǎn)環(huán)境的訂單服務(wù)掛了!
"齊小碼一個(gè)箭步?jīng)_回座位,手指己經(jīng)在鍵盤上方懸停,準(zhǔn)備展開救援。
接下來(lái)的八小時(shí),齊小碼完全沉浸在代碼的海洋里,忘記了午餐,忘記了全棧工程師的威脅,甚至忘記了去洗手間。
首到膀胱發(fā)出最后通牒,他才不情愿地暫停了與*UG的戰(zhàn)斗。
從洗手間回來(lái)時(shí),齊小碼發(fā)現(xiàn)自己的座位上坐著一個(gè)陌生人——一個(gè)扎著高馬尾,穿著印有"Talk is cheap, show me the code"T恤的女生,正專注地盯著他的顯示器。
"喂!
那是我的電腦!
"齊小碼幾乎是跑過(guò)去的。
女生抬起頭,露出一張精致的臉龐和一對(duì)閃爍著狡黠光芒的大眼睛:"哦,你就是齊小碼吧?
我是林小鹿,新來(lái)的全棧工程師。
"齊小碼愣住了。
眼前這個(gè)看起來(lái)像大學(xué)生的女生,就是傳說(shuō)中的"關(guān)系戶全棧工程師"?
她甚至沒(méi)戴眼鏡!
在齊小碼的經(jīng)驗(yàn)里,不戴眼鏡的程序員就像不會(huì)游泳的魚一樣可疑。
"你...你在看我的代碼?
"齊小碼結(jié)結(jié)巴巴地問(wèn),突然有種被侵犯隱私的感覺(jué)。
"嗯,順便幫你修了幾個(gè)*UG。
"林小鹿輕松地說(shuō),仿佛只是在談?wù)撎鞖猓?你的訂單服務(wù)邏輯有個(gè)小問(wèn)題,我改了一下,現(xiàn)在應(yīng)該穩(wěn)定了。
""你改了生產(chǎn)環(huán)境的代碼?!
"齊小碼的聲音提高了八度,"沒(méi)有經(jīng)過(guò)測(cè)試?
沒(méi)有Code Review?
沒(méi)有——""放松點(diǎn),"林小鹿站起來(lái),她比齊小碼矮了半個(gè)頭,但氣場(chǎng)卻有兩米八,"我本地測(cè)試過(guò)了,而且——"她指了指屏幕,"己經(jīng)運(yùn)行二十分鐘零錯(cuò)誤,比你之前的版本穩(wěn)定多了。
"齊小碼瞪大眼睛看著自己的代碼——確實(shí),那些紅色的錯(cuò)誤日志停止了刷屏,取而代之的是整齊的綠色成功信息。
但他內(nèi)心的程序員尊嚴(yán)拒絕承認(rèn)這一點(diǎn)。
"你不知道修改生產(chǎn)環(huán)境代碼的規(guī)矩嗎?
萬(wàn)一出了問(wèn)題——""那就回滾唄,"林小鹿聳聳肩,"代碼又不是你老婆,別那么緊張。
"齊小碼感覺(jué)自己的血壓正在突破臨界值。
這個(gè)不知天高地厚的新人,第一天來(lái)就敢動(dòng)他的代碼,還敢用這種輕佻的態(tài)度談?wù)撋袷サ木幊坦ぷ鳎?br>
"聽(tīng)著,林...林什么來(lái)著?
"齊小碼試圖拿出資深工程師的威嚴(yán),"在我們團(tuán)隊(duì),任何代碼修改都需要——""流程是吧?
"林小鹿打斷他,從背包里掏出一個(gè)U盤,"我把修改記錄和測(cè)試結(jié)果都存這里了,包括性能對(duì)比圖。
你的版本平均響應(yīng)時(shí)間1.2秒,我的0.4秒;你的版本在高并發(fā)下錯(cuò)誤率8%,我的0.5%。
還有什么問(wèn)題嗎,前輩?
"她眨眨眼,那個(gè)"前輩"聽(tīng)起來(lái)既像尊重又像調(diào)侃。
齊小碼啞口無(wú)言。
他盯著那個(gè)小小的U盤,仿佛那是一個(gè)即將引爆的**。
按照他的性格,現(xiàn)在應(yīng)該去找總監(jiān)投訴這個(gè)不守規(guī)矩的新人,但那些數(shù)字確實(shí)讓他猶豫了——0.4秒的響應(yīng)時(shí)間?
他花了三周都沒(méi)能優(yōu)化到1秒以下。
"呃...好吧,"齊小碼最終妥協(xié)了,但又不甘心完全認(rèn)輸,"不過(guò)下次請(qǐng)先——""知道啦,流程嘛!
"林小鹿揮揮手,像趕**一樣,"對(duì)了,**監(jiān)讓我跟你學(xué)習(xí)后端規(guī)范,所以..."她指了指齊小碼旁邊的空位,"那是我的新工位,請(qǐng)多指教咯,碼哥!
"齊小碼感覺(jué)自己的眼角在抽搐。
"碼哥"?
這是什么土得掉渣的稱呼?
但還沒(méi)等他**,林小鹿己經(jīng)蹦蹦跳跳地跑去茶水間了,留下他一個(gè)人對(duì)著那個(gè)顯示著"完美運(yùn)行"的屏幕發(fā)呆。
"系統(tǒng)警告:未知錯(cuò)誤。
建議:重啟人生。
"齊小碼喃喃自語(yǔ),伸手去拿馬克杯,卻發(fā)現(xiàn)里面己經(jīng)被換上了新鮮的熱咖啡。
杯子上貼著一張便簽:”賠你的咖啡,別生氣了碼哥~ PS:你的縮進(jìn)風(fēng)格真可愛(ài),像樓梯一樣整齊 ^_^“齊小碼盯著那個(gè)笑臉?lè)?hào),感覺(jué)自己的世界觀正在經(jīng)歷一場(chǎng)重大重構(gòu)。
這個(gè)林小鹿,到底是什么來(lái)頭?
關(guān)系戶?
天才?
還是...某種新型的職場(chǎng)災(zāi)難?
他唯一確定的是,從今天開始,他那井井有條的代碼生活,恐怕要迎來(lái)一大堆"未知錯(cuò)誤"了。