第4章
我的女朋友要生八個(gè)孩子
心不在焉的程序員------------------------------------------,林越以為還在做夢。,手機(jī)在床頭柜上嗡嗡嗡**,屏幕上顯示"周一——你該上班了"。這是他自己設(shè)的提醒,上周加的,那時(shí)候他最操心的事情還是周五的代碼**。,在床上躺了五秒。。。,像是有人在你的后腦勺上按了一個(gè)開關(guān)——啪,所有東西同時(shí)涌進(jìn)來。驗(yàn)孕棒上的兩條杠。蘇糖說"八個(gè)"時(shí)的表情。規(guī)劃表上密密麻麻的數(shù)字。備忘錄里"不可能完成的任務(wù)"。312萬。。,盯著天花板。?他記不太清了。好像是睡了一陣,醒了一陣,中間點(diǎn)了外賣又沒吃完,電視開了又關(guān)。蘇糖發(fā)過一條微信問他"今天干嘛",他回了一個(gè)"沒干嘛"。然后就沒再說了。。,摸到床頭的T恤套上。走到客廳的時(shí)候他看了一眼茶幾——蘇糖的規(guī)劃表還攤在那,A4紙的邊角已經(jīng)微微卷起來了。他站在茶幾前看了兩秒,沒有收。。是不知道收了之后放在哪里——抽屜里?衣柜頂上?扔掉?,拿起工牌出門了。。林越擠在車廂連接處,一只手抓著扶手,另一只手握著手機(jī)。微信置頂是蘇糖的對話框,最后一條消息還是昨天她發(fā)的"今天干嘛"和他回的"沒干嘛"。。前天蘇糖發(fā)的"到家了。早點(diǎn)睡",他沒有回。
手指在屏幕上懸了一下。然后他把手機(jī)揣回口袋。
到公司的時(shí)候八點(diǎn)零五。打卡機(jī)滴了一聲,比平時(shí)晚了十分鐘,但還在彈性時(shí)間范圍內(nèi)。林越走到自己的工位,雙屏顯示器映出他沒刮胡子的臉。
他坐下,開機(jī),輸入密碼。
手指在鍵盤上停了一瞬。密碼是sutang2019——他和蘇糖在一起的年份。他以前從來不覺得這有什么,今天輸入的時(shí)候指尖微微頓了一下。
算了。先改密碼的事放后面。
他打開IDE,切到上周沒寫完的分支。屏幕上是密密麻麻的代碼,光標(biāo)在某個(gè)函數(shù)中間閃爍,等待他繼續(xù)。
林越盯著光標(biāo)看了五秒。
然后他開始寫。
前十分鐘還算正常。肌肉記憶接管了手指——變量名、循環(huán)體、條件判斷,一套流程行云流水。他甚至覺得自己找回了節(jié)奏,好像周六發(fā)生的一切可以像關(guān)掉一個(gè)進(jìn)程一樣,暫時(shí)掛起。
但到了第十二分鐘,問題出現(xiàn)了。
他正在寫一個(gè)用戶模塊的接口。需要定義一個(gè)變量來存儲(chǔ)子賬戶信息。手指自動(dòng)敲出了——
sugar*a*y
林越盯著屏幕上的這幾個(gè)字母,愣住了。
sugar。蘇糖的糖。*a*y。孩子。
他根本沒有在想變量名。他的腦子在自己都沒注意到的時(shí)候,把"蘇糖"+"孩子"翻譯成了一個(gè)變量名塞進(jìn)了代碼里。
"操。"
他迅速按下退格鍵,把sugar*a*y刪掉,改成了su*AccountList。
心跳有點(diǎn)快。不是被嚇到了,是被自己腦子里那個(gè)無意識的聯(lián)想搞煩了。
他繼續(xù)寫。但腦子里已經(jīng)開始串臺(tái)了——312萬、八千、一萬五、120000、130個(gè)月。這些數(shù)字像是彈幕一樣從他的意識底層往上飄,擋住了他眼前的代碼。
他把第47行的邏輯判斷寫反了。應(yīng)該返回true的地方返回了false。編譯的時(shí)候報(bào)了三個(gè)錯(cuò)。
他盯著報(bào)錯(cuò)信息,發(fā)現(xiàn)自己讀不懂。
不是真的讀不懂。是讀不進(jìn)去。他的眼球在看代碼,但他的大腦在算奶粉的錢。
"林哥。"
旁邊工位的小趙推了一下他的椅子,滑過來。
"你這個(gè)——"小趙指著林越的屏幕,表情有點(diǎn)怪,"你剛才是不是寫過一行叫sugar*a*y的?"
林越的血一下子涼了半截。
"我看Git記錄的時(shí)候看到了,"小趙說,語氣是那種"我什么都沒發(fā)現(xiàn)但我覺得很搞笑"的樣子,"你定義子賬戶怎么寫成sugar*a*y了?這什么意思?糖寶寶?"
"手滑。"林越說。聲音比他預(yù)想的要平靜。
"手滑能滑出這個(gè)?"小趙的嘴角已經(jīng)壓不住了。
"滾。"
"我?guī)湍愀牧税?,別謝我。"小趙滑回自己的工位,嘴里還在嘟囔"糖寶寶……"
林越的嘴角繃了一下,又松開。他不能有任何多余的表情。小趙嘴上沒說什么,但"糖寶寶"這三個(gè)字已經(jīng)在他腦子里炸了。
如果小趙多想一步——sugar,糖,蘇糖——
不會(huì)的。他告訴自己。你只是手滑。正常的手滑。
他重新盯住屏幕,試圖把注意力拉回代碼。
拉不回來。
下午一點(diǎn)半,他吃了半份外賣就吃不下了。不是不餓,是胃里有一種說不清的堵。他坐在茶水間的椅子上,面前是一杯速溶咖啡,杯壁上的水珠正在慢慢往下淌。
手機(jī)震了一下。
他掏出來看。蘇糖發(fā)了一條消息。
"今天中午吃什么了?"
林越看著這幾個(gè)字。
他想了想,打了三個(gè)字:"麻辣燙。"
發(fā)出去之后他意識到自己吃的不是麻辣燙,是黃燜雞。但他懶得糾正了。
蘇糖秒回了一個(gè)"哦"。然后過了幾秒又發(fā)了一條:"別老吃外賣。"
林越把手機(jī)放在桌上,盯著天花板。茶水間的天花板比他家好,沒有水漬,干干凈凈的白色。日光燈嗡嗡響,和昨晚他家冰箱的聲音差不多。
他拿起手機(jī),打開備忘錄。
"不可能完成的任務(wù)"幾個(gè)字安安靜靜地躺在最上面。下面是一串?dāng)?shù)字。
312萬。
他盯著那個(gè)數(shù)字看了三秒,然后把備忘錄關(guān)了。
"林越。"
聲音從身后傳來。林越回頭,組長站在茶水間門口,手里端著個(gè)馬克杯。
"在休息?"組長問。語氣不重,但眼神里有一種"我有話跟你說"的意思。
"嗯。吃完飯了。"
組長走到飲水機(jī)旁邊接水,接的過程中沒說話。接完了,他轉(zhuǎn)過來看著林越。
"你最近狀態(tài)不太好。"
林越的背微微繃了一下。"沒有啊。"
"今天上午你的提交記錄,"組長說,"三次編譯報(bào)錯(cuò),一個(gè)變量命名問題。你以前從來不犯這種錯(cuò)。"
"手滑。"林越說。他今天第二次用這個(gè)詞了。
組長看了他一眼。不是那種"我不信"的眼神,更像是"你不想說我就不問"。
"項(xiàng)目周五要評審,"組長說,"你負(fù)責(zé)的那個(gè)模塊,好了沒有?"
"差不多了。"
"差不多是多少?"
"……還有兩個(gè)接口沒聯(lián)調(diào)。"
組長點(diǎn)點(diǎn)頭,沒再追問。他端著杯子往外走,到門口的時(shí)候停了一下。
"私人的事自己處理好,別帶到工位上。"
他沒有回頭,說完就走了。
林越坐在茶水間里,聽著組長的腳步聲越來越遠(yuǎn)。
他拿起桌上已經(jīng)涼掉的咖啡,喝了一口???。
組長說得沒錯(cuò)。他的狀態(tài)確實(shí)出了問題。
312萬的問題、八個(gè)孩子的問題、蘇糖藏起來的那張紙的問題——這些東西本來應(yīng)該待在他家客廳里、待在備忘錄里、待在周六深夜的陽臺(tái)上。但它們沒待住。它們跟著他出了門,跟著他擠了地鐵,跟著他坐到了工位上。
它們甚至鉆進(jìn)了他的變量名里。
林越把杯子放在桌上,站起來走回工位。
下午他強(qiáng)迫自己寫了兩百行代碼。質(zhì)量怎么樣不好說,但至少編譯通過了。他***接口中的一個(gè)聯(lián)調(diào)完畢,提交了代碼,看著屏幕上綠色的"*uild Succes**ul"發(fā)了一會(huì)兒呆。
然后他關(guān)掉IDE,打開瀏覽器,無意識地搜了一下"新手爸爸需要準(zhǔn)備什么"。
搜索結(jié)果彈出來的一瞬間他就把頁面關(guān)了。
五點(diǎn)半,他收拾東西準(zhǔn)備走。
剛站起來,組長從辦公室那邊走過來。
"周五評審會(huì),九點(diǎn)開始。你把演示文檔也準(zhǔn)備一下。"
"好。"
組長拍了拍他的肩膀,走了。
林越站在工位旁邊,看著組長走遠(yuǎn)的背影。
周五。還有四天。
四天之內(nèi),他要把剩余的接口聯(lián)調(diào)完、寫演示文檔、準(zhǔn)備評審。正常情況下這不難。但現(xiàn)在他的腦子里住著一個(gè)312萬的備忘錄和八個(gè)看不見的孩子,還住著一條他寫完又刪掉的字。
他拎起背包,往電梯走。
電梯門開了,里面站了幾個(gè)不認(rèn)識的同事。林越走進(jìn)去,按了一樓。
電梯往下走的時(shí)候,他看了一眼手機(jī)。蘇糖下午四點(diǎn)多發(fā)了一條消息,他到現(xiàn)在才看到。
"晚上要不要一起吃飯?"
他看著這幾個(gè)字。
手指在屏幕上停了一會(huì)兒。打字框彈出來,又關(guān)掉。再彈出來,再關(guān)掉。
蘇糖的肚子現(xiàn)在大概還是平的。再過一兩個(gè)月才會(huì)開始顯。驗(yàn)孕棒上的那兩條杠,現(xiàn)在大概已經(jīng)干了。
他的拇指懸在鍵盤上方,想了很久。
最后他打了兩個(gè)字:"下班了。"
沒有說去哪吃。沒有說幾點(diǎn)。發(fā)出去之后他又看了一眼,看著"下班了"三個(gè)字在對話框里,顯得特別冷。
電梯到一樓了。門開了,他走進(jìn)傍晚的風(fēng)里。三月底的傍晚,天還沒全黑,路燈剛剛亮起來。
他站在公司樓下,看著來來往往的人。每個(gè)人都在低頭看手機(jī)、趕地鐵、打電話。他昨晚在陽臺(tái)上站了一夜這件事,沒人知道。他的備忘錄里躺著一個(gè)312萬的任務(wù),沒人知道。他的女朋友肚子里有一個(gè)——不,按計(jì)劃,是八個(gè),更沒人知道。
他走向地鐵站。
腦子里有兩個(gè)數(shù)字在打架:一個(gè)是周五的評審,一個(gè)是312萬的預(yù)算。
他不知道哪個(gè)更難。
手指在屏幕上懸了一下。然后他把手機(jī)揣回口袋。
到公司的時(shí)候八點(diǎn)零五。打卡機(jī)滴了一聲,比平時(shí)晚了十分鐘,但還在彈性時(shí)間范圍內(nèi)。林越走到自己的工位,雙屏顯示器映出他沒刮胡子的臉。
他坐下,開機(jī),輸入密碼。
手指在鍵盤上停了一瞬。密碼是sutang2019——他和蘇糖在一起的年份。他以前從來不覺得這有什么,今天輸入的時(shí)候指尖微微頓了一下。
算了。先改密碼的事放后面。
他打開IDE,切到上周沒寫完的分支。屏幕上是密密麻麻的代碼,光標(biāo)在某個(gè)函數(shù)中間閃爍,等待他繼續(xù)。
林越盯著光標(biāo)看了五秒。
然后他開始寫。
前十分鐘還算正常。肌肉記憶接管了手指——變量名、循環(huán)體、條件判斷,一套流程行云流水。他甚至覺得自己找回了節(jié)奏,好像周六發(fā)生的一切可以像關(guān)掉一個(gè)進(jìn)程一樣,暫時(shí)掛起。
但到了第十二分鐘,問題出現(xiàn)了。
他正在寫一個(gè)用戶模塊的接口。需要定義一個(gè)變量來存儲(chǔ)子賬戶信息。手指自動(dòng)敲出了——
sugar*a*y
林越盯著屏幕上的這幾個(gè)字母,愣住了。
sugar。蘇糖的糖。*a*y。孩子。
他根本沒有在想變量名。他的腦子在自己都沒注意到的時(shí)候,把"蘇糖"+"孩子"翻譯成了一個(gè)變量名塞進(jìn)了代碼里。
"操。"
他迅速按下退格鍵,把sugar*a*y刪掉,改成了su*AccountList。
心跳有點(diǎn)快。不是被嚇到了,是被自己腦子里那個(gè)無意識的聯(lián)想搞煩了。
他繼續(xù)寫。但腦子里已經(jīng)開始串臺(tái)了——312萬、八千、一萬五、120000、130個(gè)月。這些數(shù)字像是彈幕一樣從他的意識底層往上飄,擋住了他眼前的代碼。
他把第47行的邏輯判斷寫反了。應(yīng)該返回true的地方返回了false。編譯的時(shí)候報(bào)了三個(gè)錯(cuò)。
他盯著報(bào)錯(cuò)信息,發(fā)現(xiàn)自己讀不懂。
不是真的讀不懂。是讀不進(jìn)去。他的眼球在看代碼,但他的大腦在算奶粉的錢。
"林哥。"
旁邊工位的小趙推了一下他的椅子,滑過來。
"你這個(gè)——"小趙指著林越的屏幕,表情有點(diǎn)怪,"你剛才是不是寫過一行叫sugar*a*y的?"
林越的血一下子涼了半截。
"我看Git記錄的時(shí)候看到了,"小趙說,語氣是那種"我什么都沒發(fā)現(xiàn)但我覺得很搞笑"的樣子,"你定義子賬戶怎么寫成sugar*a*y了?這什么意思?糖寶寶?"
"手滑。"林越說。聲音比他預(yù)想的要平靜。
"手滑能滑出這個(gè)?"小趙的嘴角已經(jīng)壓不住了。
"滾。"
"我?guī)湍愀牧税?,別謝我。"小趙滑回自己的工位,嘴里還在嘟囔"糖寶寶……"
林越的嘴角繃了一下,又松開。他不能有任何多余的表情。小趙嘴上沒說什么,但"糖寶寶"這三個(gè)字已經(jīng)在他腦子里炸了。
如果小趙多想一步——sugar,糖,蘇糖——
不會(huì)的。他告訴自己。你只是手滑。正常的手滑。
他重新盯住屏幕,試圖把注意力拉回代碼。
拉不回來。
下午一點(diǎn)半,他吃了半份外賣就吃不下了。不是不餓,是胃里有一種說不清的堵。他坐在茶水間的椅子上,面前是一杯速溶咖啡,杯壁上的水珠正在慢慢往下淌。
手機(jī)震了一下。
他掏出來看。蘇糖發(fā)了一條消息。
"今天中午吃什么了?"
林越看著這幾個(gè)字。
他想了想,打了三個(gè)字:"麻辣燙。"
發(fā)出去之后他意識到自己吃的不是麻辣燙,是黃燜雞。但他懶得糾正了。
蘇糖秒回了一個(gè)"哦"。然后過了幾秒又發(fā)了一條:"別老吃外賣。"
林越把手機(jī)放在桌上,盯著天花板。茶水間的天花板比他家好,沒有水漬,干干凈凈的白色。日光燈嗡嗡響,和昨晚他家冰箱的聲音差不多。
他拿起手機(jī),打開備忘錄。
"不可能完成的任務(wù)"幾個(gè)字安安靜靜地躺在最上面。下面是一串?dāng)?shù)字。
312萬。
他盯著那個(gè)數(shù)字看了三秒,然后把備忘錄關(guān)了。
"林越。"
聲音從身后傳來。林越回頭,組長站在茶水間門口,手里端著個(gè)馬克杯。
"在休息?"組長問。語氣不重,但眼神里有一種"我有話跟你說"的意思。
"嗯。吃完飯了。"
組長走到飲水機(jī)旁邊接水,接的過程中沒說話。接完了,他轉(zhuǎn)過來看著林越。
"你最近狀態(tài)不太好。"
林越的背微微繃了一下。"沒有啊。"
"今天上午你的提交記錄,"組長說,"三次編譯報(bào)錯(cuò),一個(gè)變量命名問題。你以前從來不犯這種錯(cuò)。"
"手滑。"林越說。他今天第二次用這個(gè)詞了。
組長看了他一眼。不是那種"我不信"的眼神,更像是"你不想說我就不問"。
"項(xiàng)目周五要評審,"組長說,"你負(fù)責(zé)的那個(gè)模塊,好了沒有?"
"差不多了。"
"差不多是多少?"
"……還有兩個(gè)接口沒聯(lián)調(diào)。"
組長點(diǎn)點(diǎn)頭,沒再追問。他端著杯子往外走,到門口的時(shí)候停了一下。
"私人的事自己處理好,別帶到工位上。"
他沒有回頭,說完就走了。
林越坐在茶水間里,聽著組長的腳步聲越來越遠(yuǎn)。
他拿起桌上已經(jīng)涼掉的咖啡,喝了一口???。
組長說得沒錯(cuò)。他的狀態(tài)確實(shí)出了問題。
312萬的問題、八個(gè)孩子的問題、蘇糖藏起來的那張紙的問題——這些東西本來應(yīng)該待在他家客廳里、待在備忘錄里、待在周六深夜的陽臺(tái)上。但它們沒待住。它們跟著他出了門,跟著他擠了地鐵,跟著他坐到了工位上。
它們甚至鉆進(jìn)了他的變量名里。
林越把杯子放在桌上,站起來走回工位。
下午他強(qiáng)迫自己寫了兩百行代碼。質(zhì)量怎么樣不好說,但至少編譯通過了。他***接口中的一個(gè)聯(lián)調(diào)完畢,提交了代碼,看著屏幕上綠色的"*uild Succes**ul"發(fā)了一會(huì)兒呆。
然后他關(guān)掉IDE,打開瀏覽器,無意識地搜了一下"新手爸爸需要準(zhǔn)備什么"。
搜索結(jié)果彈出來的一瞬間他就把頁面關(guān)了。
五點(diǎn)半,他收拾東西準(zhǔn)備走。
剛站起來,組長從辦公室那邊走過來。
"周五評審會(huì),九點(diǎn)開始。你把演示文檔也準(zhǔn)備一下。"
"好。"
組長拍了拍他的肩膀,走了。
林越站在工位旁邊,看著組長走遠(yuǎn)的背影。
周五。還有四天。
四天之內(nèi),他要把剩余的接口聯(lián)調(diào)完、寫演示文檔、準(zhǔn)備評審。正常情況下這不難。但現(xiàn)在他的腦子里住著一個(gè)312萬的備忘錄和八個(gè)看不見的孩子,還住著一條他寫完又刪掉的字。
他拎起背包,往電梯走。
電梯門開了,里面站了幾個(gè)不認(rèn)識的同事。林越走進(jìn)去,按了一樓。
電梯往下走的時(shí)候,他看了一眼手機(jī)。蘇糖下午四點(diǎn)多發(fā)了一條消息,他到現(xiàn)在才看到。
"晚上要不要一起吃飯?"
他看著這幾個(gè)字。
手指在屏幕上停了一會(huì)兒。打字框彈出來,又關(guān)掉。再彈出來,再關(guān)掉。
蘇糖的肚子現(xiàn)在大概還是平的。再過一兩個(gè)月才會(huì)開始顯。驗(yàn)孕棒上的那兩條杠,現(xiàn)在大概已經(jīng)干了。
他的拇指懸在鍵盤上方,想了很久。
最后他打了兩個(gè)字:"下班了。"
沒有說去哪吃。沒有說幾點(diǎn)。發(fā)出去之后他又看了一眼,看著"下班了"三個(gè)字在對話框里,顯得特別冷。
電梯到一樓了。門開了,他走進(jìn)傍晚的風(fēng)里。三月底的傍晚,天還沒全黑,路燈剛剛亮起來。
他站在公司樓下,看著來來往往的人。每個(gè)人都在低頭看手機(jī)、趕地鐵、打電話。他昨晚在陽臺(tái)上站了一夜這件事,沒人知道。他的備忘錄里躺著一個(gè)312萬的任務(wù),沒人知道。他的女朋友肚子里有一個(gè)——不,按計(jì)劃,是八個(gè),更沒人知道。
他走向地鐵站。
腦子里有兩個(gè)數(shù)字在打架:一個(gè)是周五的評審,一個(gè)是312萬的預(yù)算。
他不知道哪個(gè)更難。