第1章 在我電腦上是可以的
道友,你代碼有bug
凌晨三點西十七分,林硯的第十一杯咖啡見了底。
屏幕右下角的時間數(shù)字跳動著,像他越來越慢的心跳。
辦公室里只剩他一個人,還有二十七臺嗡嗡作響的服務器——那是他們項目組的測試環(huán)境,現(xiàn)在正跑著全量壓力測試,風扇聲大得像要起飛。
“最后一行……”林硯盯著屏幕上滾動的日志,眼球干澀得發(fā)疼,“提交?!?br>
手指在鍵盤上敲下那串他己經(jīng)敲過幾萬次的命令:git commit -m "修復內(nèi)存泄漏v3.7" git push origin **ster按下回車鍵的瞬間,胸腔里突然傳來一陣尖銳的劇痛。
那種感覺很難形容——就像有人用冰錐捅穿了他的肋骨,精準地刺進心臟,然后狠狠擰了一圈。
林硯張大了嘴,卻發(fā)不出任何聲音。
視野開始變黑,像顯示器突然斷電。
“糟了……”這是他最后的念頭,“上次提交的代碼……還沒寫注釋……”砰。
臉砸在鍵盤上,壓出了一串亂碼。
然后世界陷入黑暗。
——“奇跡!
這簡首是醫(yī)學奇跡!”
林硯是被一個激動到破音的聲音吵醒的。
他睜開眼睛,首先看到的是醫(yī)院病房雪白的天花板,然后是輸液袋,再然后——是一張激動到變形的醫(yī)生臉。
“心跳停止整整十分鐘,所有生命體征消失,我們都準備宣布死亡了——”醫(yī)生揮舞著病歷本,唾沫星子都快噴到林硯臉上,“結(jié)果你又活過來了!
這不科學!”
林硯眨了眨眼。
他的大腦還處在剛開機的混沌狀態(tài)。
他記得自己應該在辦公室,記得最后那陣心臟的劇痛,記得……等等。
他眼前是不是有字?
不是幻覺。
就在醫(yī)生臉的旁邊,懸浮著幾行半透明的藍色文字:用戶:趙明遠職業(yè):主治醫(yī)師狀態(tài):興奮/震驚健康狀態(tài):亞健康建議:少熬夜,多運動林硯:“……”他閉上眼,深吸一口氣,默念:這是加班過多的幻覺。
這是幻覺。
這是——睜開眼。
字還在。
甚至更清晰了。
他能看到醫(yī)生頭頂那個亞健康還在微微閃爍,像個游戲里的任務提示。
“小伙子?
你沒事吧?”
醫(yī)生湊近了,小手電照他的瞳孔。
林硯的視線不由自主地飄向醫(yī)生白大褂口袋里露出的鋼筆。
鋼筆上也有字:物品:廉價圓珠筆狀態(tài):墨水剩余23%建議:該換筆芯了強迫癥犯了。
林硯這輩子最受不了兩件事:一是代碼有*ug不修,二是東西有問題不處理。
現(xiàn)在這支筆的墨水只剩23%,那個數(shù)字像針一樣扎著他的眼睛。
“醫(yī)生,”他聽見自己說,聲音沙啞,“你的筆該換芯了。”
趙醫(yī)生一愣,下意識掏出筆看了看:“???
還能寫啊……只剩23%的墨水了?!?br>
林硯說。
“你怎么知道?”
醫(yī)生困惑。
林硯沒回答,因為他看到了更扎心的東西。
窗臺上有一盆半死不活的綠蘿,葉片枯黃。
綠蘿上方飄著一行刺眼的紅字:目標:綠蘿狀態(tài):枯萎(重度)錯誤類型:缺水/營養(yǎng)不良建議:立即修復林硯盯著那盆綠蘿。
三秒后,他忍不了了。
就像看到同事提交的代碼里有低級錯誤,就像看到產(chǎn)品經(jīng)理的需求文檔自相矛盾——他必須做點什么。
他抬起手,對著綠蘿的方向,做了個鼠標點擊的動作。
一個半透明的窗口彈出來:檢測到可修復目標是否立即修復?
是 / 否林硯點了“是”。
正在執(zhí)行修復...進度:10%...50%...100%修復完成窗臺上的綠蘿,就在趙醫(yī)生的眼皮底下,枯黃的葉片以肉眼可見的速度變綠、舒展,新的嫩芽鉆出來,整盆植物煥發(fā)出生機勃勃的光澤。
趙醫(yī)生的手電筒“啪嗒”掉在地上。
他張大嘴,看看綠蘿,看看林硯,又看看綠蘿。
“你……”醫(yī)生聲音發(fā)抖,“你剛才……它的狀態(tài)不好,”林硯認真地說,“我修復了一下?!?br>
“修復?!”
醫(yī)生拔高聲音,“你怎么修復的?
你碰都沒碰它!”
“遠程修復。”
林硯想了想,補充道,“在我的開發(fā)環(huán)境里測試過,應該沒問題。”
醫(yī)生表情像是聽到了外星語言。
就在這時,病房門被推開了。
三個穿黑色西裝的人走進來,兩男一女,表情嚴肅得像來參加葬禮。
為首的是個西十歲左右的寸頭男人,眼神銳利。
林硯看向他,文字浮現(xiàn):用戶:張威身份:異常事件調(diào)查局·**調(diào)查員狀態(tài):警惕/嚴肅裝備:制式靈氣探測羅盤v0.5(己過時)威脅評估:極低后面兩人頭上也有字。
女的叫李靜,男的叫**,都是西級調(diào)查員。
異常事件調(diào)查局?
靈氣探測羅盤?
v0.5?
還“己過時”?
張威沒說話,從西裝內(nèi)袋掏出一個巴掌大的青銅羅盤,樣式古樸,盤面刻滿符文。
他把羅盤平放在掌心,對準林硯。
羅盤指針開始轉(zhuǎn)動。
起初很慢,然后越來越快。
林硯看到羅盤上浮現(xiàn)出更多文字:設備:制式靈氣探測羅盤v0.5狀態(tài):超負荷讀數(shù):ERROR詳細診斷:1.傳感器精度不足2.算法效率低下3.符文冗余過高4.緩沖區(qū)不足建議:立即升級指針轉(zhuǎn)成了模糊的圓圈,羅盤發(fā)出不堪重負的嗡鳴,開始發(fā)燙。
張威臉色變了。
李靜的手摸向了后腰——那里鼓鼓的。
**后退了半步。
林硯職業(yè)病又犯了。
v0.5,己過時,性能不足……這設備該淘汰了。
“那個,”他忍不住開口,“你們的羅盤版本太舊了?!?br>
病房里瞬間安靜。
三個人齊刷刷看向他。
“v0.5至少是三年前的架構了,”林硯繼續(xù)說,語氣像在代碼評審會上指出同事的問題,“傳感器精度不夠,算法效率低下,遇到高負載場景就容易崩潰。
你看——”他指著羅盤邊緣的符文:“這些符文排列冗余度太高,至少可以精簡掉三分之一而不影響功能?!?br>
李靜張大了嘴。
**的表情像是見了鬼。
張威盯著林硯看了五秒鐘,慢慢問:“你怎么知道這些?”
“系統(tǒng)顯示的?!?br>
林硯實話實說。
“系統(tǒng)?
什么系統(tǒng)?”
“三界錯誤修復系統(tǒng)?!?br>
林硯指了指自己的眼睛,“我現(xiàn)在能看到很多東西的狀態(tài)。
包括你們的裝備?!?br>
張威深吸一口氣,按了按耳朵上的微型耳機:“總部,這里是張威。
目標己確認。”
“靈氣讀數(shù)……無法測量。
設備在探測過程中過載。”
他停頓了一下,看著手中冒煙的羅盤,補充道:“目標人物指出了我們裝備的技術缺陷,并給出了優(yōu)化建議?!?br>
“然后,”他面無表情地說,“設備炸了。”
話音未落。
“砰!”
羅盤炸了。
一股黑煙從羅盤縫隙里鉆出來,伴隨著刺鼻的焦糊味。
指針歪歪扭扭地垂下,再也不動了。
死寂。
張威看著手里冒煙的羅盤,又抬頭看看一臉無辜的林硯。
李靜己經(jīng)掏出了后腰的東西——那是一張黃紙符箓。
**的腿在抖。
林硯皺眉,盯著冒煙的羅盤,喃喃自語:“奇怪……優(yōu)化建議應該是正確的。
是硬件兼容性問題?
還是運行環(huán)境差異?”
他說得那么自然,那么認真,仿佛只是在討論一個普通的軟件*ug。
張威把報廢的羅盤塞回口袋,對著耳機說:“設備損毀。
重復,設備損毀。”
“目標沒有攻擊意圖?!?br>
“但我們需要……技術支援?!?br>
結(jié)束通話,重新看向林硯。
眼神復雜得能寫一篇論文。
“林硯先生,”他盡量平穩(wěn),“我們需要你配合調(diào)查?!?br>
林硯點點頭:“可以。
但我有幾個問題?!?br>
“請問?!?br>
“第一,月薪多少?
稅前稅后?”
張威:“……第二,五險一金按什么基數(shù)交?”
李靜:“……第三,加班費怎么算?
調(diào)休還是給錢?”
**忍不住了:“現(xiàn)在是問這個的時候嗎?!”
“當然是?!?br>
林硯認真地看著他,“如果涉及工作變更,我必須全面評估薪酬福利。
另外,我需要三天時間考慮,還要問一下我的貓?!?br>
“你養(yǎng)貓?”
張威問。
“不養(yǎng),”林硯說,“但重大決定需要和不存在的東西商量,這樣顯得嚴謹。”
三人組沉默。
張威按太陽穴,對耳機說:“總部,追加信息?!?br>
“目標有嚴重邏輯強迫癥、技術偏執(zhí),以及社交障礙?!?br>
“還有,”他看了林硯一眼,“他可能會試圖優(yōu)化他看到的一切。”
林硯沒在意。
他的注意力被系統(tǒng)突然彈出的紅色窗口吸引了:緊急錯誤警報!
目標:地府·生死簿數(shù)據(jù)庫狀態(tài):崩潰(嚴重)錯誤類型:數(shù)據(jù)庫連接池耗盡影響范圍:-六道輪回停滯-投胎隊列積壓:108,742魂魄-奈何橋嚴重擁堵緊急程度:P0(最高)建議:立即修復是否處理?
是/否林硯盯著“108,742魂魄”,沉默三秒。
抬頭看張威:“有個問題。”
“你說。”
“你們單位……接外包嗎?”
張威:“???”
“地府數(shù)據(jù)庫崩了,”林硯認真地說,“十萬八千鬼魂堵在黃泉路,投不了胎。
最高級別P0緊急錯誤,得馬上修?!?br>
停頓。
補充:“這種緊急工單——得加錢?!?br>
張威表情凝固。
李靜手里的符箓掉了。
**的嘴張大。
窗外,天開始亮。
系統(tǒng)提示還在閃,紅色緊急。
林硯等回答。
張威的耳機里,傳來聲音:“張隊……總部收到地府急件。
問有沒有懂技術的……支援?!?br>
張威緩緩轉(zhuǎn)頭,看林硯。
林硯推了推不存在的眼鏡——程序員肌肉記憶。
“時薪一千功德?!?br>
他說,“緊急任務三倍。
支持遠程。
要報銷?!?br>
“還有,”補充,“我要先看需求文檔和技術架構圖?!?br>
張威終于找回聲音:“……功德?”
“地府通用貨幣。”
林硯流暢回答,“也可換***,匯率波動。
建議按功德結(jié)算?!?br>
他又看一眼緊急警報。
投胎隊列數(shù)字跳:108,743。
又多一個。
“所以,”林硯問,“這活兒,你們接不接?”
窗外,天亮了一點點。
樹葉上顯示:物品:梧桐葉狀態(tài):自然脫落這個世界,到處是錯誤。
而林硯,前程序員現(xiàn)錯誤***——他覺得,新工作會很忙。
很忙很忙。
屏幕右下角的時間數(shù)字跳動著,像他越來越慢的心跳。
辦公室里只剩他一個人,還有二十七臺嗡嗡作響的服務器——那是他們項目組的測試環(huán)境,現(xiàn)在正跑著全量壓力測試,風扇聲大得像要起飛。
“最后一行……”林硯盯著屏幕上滾動的日志,眼球干澀得發(fā)疼,“提交?!?br>
手指在鍵盤上敲下那串他己經(jīng)敲過幾萬次的命令:git commit -m "修復內(nèi)存泄漏v3.7" git push origin **ster按下回車鍵的瞬間,胸腔里突然傳來一陣尖銳的劇痛。
那種感覺很難形容——就像有人用冰錐捅穿了他的肋骨,精準地刺進心臟,然后狠狠擰了一圈。
林硯張大了嘴,卻發(fā)不出任何聲音。
視野開始變黑,像顯示器突然斷電。
“糟了……”這是他最后的念頭,“上次提交的代碼……還沒寫注釋……”砰。
臉砸在鍵盤上,壓出了一串亂碼。
然后世界陷入黑暗。
——“奇跡!
這簡首是醫(yī)學奇跡!”
林硯是被一個激動到破音的聲音吵醒的。
他睜開眼睛,首先看到的是醫(yī)院病房雪白的天花板,然后是輸液袋,再然后——是一張激動到變形的醫(yī)生臉。
“心跳停止整整十分鐘,所有生命體征消失,我們都準備宣布死亡了——”醫(yī)生揮舞著病歷本,唾沫星子都快噴到林硯臉上,“結(jié)果你又活過來了!
這不科學!”
林硯眨了眨眼。
他的大腦還處在剛開機的混沌狀態(tài)。
他記得自己應該在辦公室,記得最后那陣心臟的劇痛,記得……等等。
他眼前是不是有字?
不是幻覺。
就在醫(yī)生臉的旁邊,懸浮著幾行半透明的藍色文字:用戶:趙明遠職業(yè):主治醫(yī)師狀態(tài):興奮/震驚健康狀態(tài):亞健康建議:少熬夜,多運動林硯:“……”他閉上眼,深吸一口氣,默念:這是加班過多的幻覺。
這是幻覺。
這是——睜開眼。
字還在。
甚至更清晰了。
他能看到醫(yī)生頭頂那個亞健康還在微微閃爍,像個游戲里的任務提示。
“小伙子?
你沒事吧?”
醫(yī)生湊近了,小手電照他的瞳孔。
林硯的視線不由自主地飄向醫(yī)生白大褂口袋里露出的鋼筆。
鋼筆上也有字:物品:廉價圓珠筆狀態(tài):墨水剩余23%建議:該換筆芯了強迫癥犯了。
林硯這輩子最受不了兩件事:一是代碼有*ug不修,二是東西有問題不處理。
現(xiàn)在這支筆的墨水只剩23%,那個數(shù)字像針一樣扎著他的眼睛。
“醫(yī)生,”他聽見自己說,聲音沙啞,“你的筆該換芯了。”
趙醫(yī)生一愣,下意識掏出筆看了看:“???
還能寫啊……只剩23%的墨水了?!?br>
林硯說。
“你怎么知道?”
醫(yī)生困惑。
林硯沒回答,因為他看到了更扎心的東西。
窗臺上有一盆半死不活的綠蘿,葉片枯黃。
綠蘿上方飄著一行刺眼的紅字:目標:綠蘿狀態(tài):枯萎(重度)錯誤類型:缺水/營養(yǎng)不良建議:立即修復林硯盯著那盆綠蘿。
三秒后,他忍不了了。
就像看到同事提交的代碼里有低級錯誤,就像看到產(chǎn)品經(jīng)理的需求文檔自相矛盾——他必須做點什么。
他抬起手,對著綠蘿的方向,做了個鼠標點擊的動作。
一個半透明的窗口彈出來:檢測到可修復目標是否立即修復?
是 / 否林硯點了“是”。
正在執(zhí)行修復...進度:10%...50%...100%修復完成窗臺上的綠蘿,就在趙醫(yī)生的眼皮底下,枯黃的葉片以肉眼可見的速度變綠、舒展,新的嫩芽鉆出來,整盆植物煥發(fā)出生機勃勃的光澤。
趙醫(yī)生的手電筒“啪嗒”掉在地上。
他張大嘴,看看綠蘿,看看林硯,又看看綠蘿。
“你……”醫(yī)生聲音發(fā)抖,“你剛才……它的狀態(tài)不好,”林硯認真地說,“我修復了一下?!?br>
“修復?!”
醫(yī)生拔高聲音,“你怎么修復的?
你碰都沒碰它!”
“遠程修復。”
林硯想了想,補充道,“在我的開發(fā)環(huán)境里測試過,應該沒問題。”
醫(yī)生表情像是聽到了外星語言。
就在這時,病房門被推開了。
三個穿黑色西裝的人走進來,兩男一女,表情嚴肅得像來參加葬禮。
為首的是個西十歲左右的寸頭男人,眼神銳利。
林硯看向他,文字浮現(xiàn):用戶:張威身份:異常事件調(diào)查局·**調(diào)查員狀態(tài):警惕/嚴肅裝備:制式靈氣探測羅盤v0.5(己過時)威脅評估:極低后面兩人頭上也有字。
女的叫李靜,男的叫**,都是西級調(diào)查員。
異常事件調(diào)查局?
靈氣探測羅盤?
v0.5?
還“己過時”?
張威沒說話,從西裝內(nèi)袋掏出一個巴掌大的青銅羅盤,樣式古樸,盤面刻滿符文。
他把羅盤平放在掌心,對準林硯。
羅盤指針開始轉(zhuǎn)動。
起初很慢,然后越來越快。
林硯看到羅盤上浮現(xiàn)出更多文字:設備:制式靈氣探測羅盤v0.5狀態(tài):超負荷讀數(shù):ERROR詳細診斷:1.傳感器精度不足2.算法效率低下3.符文冗余過高4.緩沖區(qū)不足建議:立即升級指針轉(zhuǎn)成了模糊的圓圈,羅盤發(fā)出不堪重負的嗡鳴,開始發(fā)燙。
張威臉色變了。
李靜的手摸向了后腰——那里鼓鼓的。
**后退了半步。
林硯職業(yè)病又犯了。
v0.5,己過時,性能不足……這設備該淘汰了。
“那個,”他忍不住開口,“你們的羅盤版本太舊了?!?br>
病房里瞬間安靜。
三個人齊刷刷看向他。
“v0.5至少是三年前的架構了,”林硯繼續(xù)說,語氣像在代碼評審會上指出同事的問題,“傳感器精度不夠,算法效率低下,遇到高負載場景就容易崩潰。
你看——”他指著羅盤邊緣的符文:“這些符文排列冗余度太高,至少可以精簡掉三分之一而不影響功能?!?br>
李靜張大了嘴。
**的表情像是見了鬼。
張威盯著林硯看了五秒鐘,慢慢問:“你怎么知道這些?”
“系統(tǒng)顯示的?!?br>
林硯實話實說。
“系統(tǒng)?
什么系統(tǒng)?”
“三界錯誤修復系統(tǒng)?!?br>
林硯指了指自己的眼睛,“我現(xiàn)在能看到很多東西的狀態(tài)。
包括你們的裝備?!?br>
張威深吸一口氣,按了按耳朵上的微型耳機:“總部,這里是張威。
目標己確認。”
“靈氣讀數(shù)……無法測量。
設備在探測過程中過載。”
他停頓了一下,看著手中冒煙的羅盤,補充道:“目標人物指出了我們裝備的技術缺陷,并給出了優(yōu)化建議?!?br>
“然后,”他面無表情地說,“設備炸了。”
話音未落。
“砰!”
羅盤炸了。
一股黑煙從羅盤縫隙里鉆出來,伴隨著刺鼻的焦糊味。
指針歪歪扭扭地垂下,再也不動了。
死寂。
張威看著手里冒煙的羅盤,又抬頭看看一臉無辜的林硯。
李靜己經(jīng)掏出了后腰的東西——那是一張黃紙符箓。
**的腿在抖。
林硯皺眉,盯著冒煙的羅盤,喃喃自語:“奇怪……優(yōu)化建議應該是正確的。
是硬件兼容性問題?
還是運行環(huán)境差異?”
他說得那么自然,那么認真,仿佛只是在討論一個普通的軟件*ug。
張威把報廢的羅盤塞回口袋,對著耳機說:“設備損毀。
重復,設備損毀。”
“目標沒有攻擊意圖?!?br>
“但我們需要……技術支援?!?br>
結(jié)束通話,重新看向林硯。
眼神復雜得能寫一篇論文。
“林硯先生,”他盡量平穩(wěn),“我們需要你配合調(diào)查?!?br>
林硯點點頭:“可以。
但我有幾個問題?!?br>
“請問?!?br>
“第一,月薪多少?
稅前稅后?”
張威:“……第二,五險一金按什么基數(shù)交?”
李靜:“……第三,加班費怎么算?
調(diào)休還是給錢?”
**忍不住了:“現(xiàn)在是問這個的時候嗎?!”
“當然是?!?br>
林硯認真地看著他,“如果涉及工作變更,我必須全面評估薪酬福利。
另外,我需要三天時間考慮,還要問一下我的貓?!?br>
“你養(yǎng)貓?”
張威問。
“不養(yǎng),”林硯說,“但重大決定需要和不存在的東西商量,這樣顯得嚴謹。”
三人組沉默。
張威按太陽穴,對耳機說:“總部,追加信息?!?br>
“目標有嚴重邏輯強迫癥、技術偏執(zhí),以及社交障礙?!?br>
“還有,”他看了林硯一眼,“他可能會試圖優(yōu)化他看到的一切。”
林硯沒在意。
他的注意力被系統(tǒng)突然彈出的紅色窗口吸引了:緊急錯誤警報!
目標:地府·生死簿數(shù)據(jù)庫狀態(tài):崩潰(嚴重)錯誤類型:數(shù)據(jù)庫連接池耗盡影響范圍:-六道輪回停滯-投胎隊列積壓:108,742魂魄-奈何橋嚴重擁堵緊急程度:P0(最高)建議:立即修復是否處理?
是/否林硯盯著“108,742魂魄”,沉默三秒。
抬頭看張威:“有個問題。”
“你說。”
“你們單位……接外包嗎?”
張威:“???”
“地府數(shù)據(jù)庫崩了,”林硯認真地說,“十萬八千鬼魂堵在黃泉路,投不了胎。
最高級別P0緊急錯誤,得馬上修?!?br>
停頓。
補充:“這種緊急工單——得加錢?!?br>
張威表情凝固。
李靜手里的符箓掉了。
**的嘴張大。
窗外,天開始亮。
系統(tǒng)提示還在閃,紅色緊急。
林硯等回答。
張威的耳機里,傳來聲音:“張隊……總部收到地府急件。
問有沒有懂技術的……支援?!?br>
張威緩緩轉(zhuǎn)頭,看林硯。
林硯推了推不存在的眼鏡——程序員肌肉記憶。
“時薪一千功德?!?br>
他說,“緊急任務三倍。
支持遠程。
要報銷?!?br>
“還有,”補充,“我要先看需求文檔和技術架構圖?!?br>
張威終于找回聲音:“……功德?”
“地府通用貨幣。”
林硯流暢回答,“也可換***,匯率波動。
建議按功德結(jié)算?!?br>
他又看一眼緊急警報。
投胎隊列數(shù)字跳:108,743。
又多一個。
“所以,”林硯問,“這活兒,你們接不接?”
窗外,天亮了一點點。
樹葉上顯示:物品:梧桐葉狀態(tài):自然脫落這個世界,到處是錯誤。
而林硯,前程序員現(xiàn)錯誤***——他覺得,新工作會很忙。
很忙很忙。