第一章 凌晨三點(diǎn)的匿名代碼鍵盤敲擊聲像心跳一樣規(guī)律又令人窒息,
我盯著屏幕右上角的時間——03:17,工位隔板外的辦公區(qū)早已漆黑一片,
只有我桌上的臺燈投下圈慘白的光,將策劃案上的紅叉照得格外刺眼?!傲窒模?/p>
明天要是拿不出完整的方案,你就收拾東西走人。”總監(jiān)臨走前摔在我桌上的文件夾還在震,
里面夾著的競品分析報告滑出一角,“末日余暉”四個燙金大字像把刀,剜著我后槽牙。
手心全是冷汗,我反復(fù)刷新著云盤回收站,直到屏幕上彈出“文件已永久刪除”的提示。
上周熬了三個通宵做的用戶行為分析數(shù)據(jù),就這么干干凈凈消失了,
連備份文件都被篡改得面目全非。指甲深深掐進(jìn)掌心,
我突然想起顧沉舟說過的話:“編城里沒有真正的消失,只是藏在了某個你沒找到的角落。
”電腦右下角突然彈出個聊天框,匿名用戶發(fā)來?xiàng)l消息:【需要幫忙嗎?】我瞳孔驟縮。
這種凌晨三點(diǎn)的陌生人,要么是黑客,要么是騙子。可當(dāng)他發(fā)來第二段文字時,
我鬼使神差地復(fù)制了那串代碼——【試試這個修復(fù)程序,注意第八行參數(shù)。
】代碼風(fēng)格太眼熟了。高中參加數(shù)學(xué)建模比賽,我抱著筆記本哭喪著臉找顧沉舟求助,
他叼著鉛筆掃了眼題目,指尖在鍵盤上飛舞出的就是這種帶著斜杠注釋的寫法,
像在代碼里藏了支偷懶的筆。修復(fù)程序運(yùn)行時,我聽見自己劇烈的心跳聲。
進(jìn)度條跳到67%時,辦公桌上突然多了個紙袋,里面是杯還溫?zé)岬哪描F,
杯套上畫著只歪歪扭扭的皮卡丘——和我三年級課本上被顧沉舟畫滿頁腳的那只一模一樣。
“?!钡囊宦?,數(shù)據(jù)條滿血復(fù)活。我猛地轉(zhuǎn)頭,走廊盡頭的安全出口指示燈忽明忽暗,
只有皮鞋踩在瓷磚上的余韻,像他每次偷偷幫我修好broken玩具后,
逃跑時留下的腳步聲。晨會時總監(jiān)的眉毛快飛到天花板,
我攥著那杯已經(jīng)冷掉的拿鐵坐在會議室角落,聽著策劃案被逐條通過的聲音,
忽然想起七年前那個暴雨天。顧沉舟把我護(hù)在便利店屋檐下,自己沖進(jìn)雨里買關(guān)東煮,
回來時懷里的飯團(tuán)還是干的,
他后頸卻滴著混著雨水的血——因?yàn)樘嫖覔踝×藦臉巧蠅嬄涞幕ㄅ??!傲窒模?/p>
這次多虧你及時補(bǔ)救?!鄙罂偙O(jiān)拍了拍我肩膀,我聞到他袖口沾著的雪松香水味,
和顧沉舟常用的那款一模一樣。電梯門合上的瞬間,我看見研發(fā)部的玻璃墻后,
那個永遠(yuǎn)穿著白襯衫的身影正對著電腦屏幕敲代碼,
后頸處有塊淡色的胎記——和我昨晚在監(jiān)控畫面里瞥見的,給我送咖啡的人影一模一樣。
“想什么呢?”溫溫?zé)釤岬恼菩脑谖已矍盎瘟嘶?,顧沉舟不知何時站在了我身邊,
指尖還沾著藍(lán)色的鋼筆墨水,“黑眼圈都能夾死蚊子了,
要不要我?guī)湍銓憘€‘美容覺優(yōu)先’的代碼程序?”我把空咖啡杯晃得嘩啦響:“謝了,
不過送咖啡的人沒留名字?!彼馑查g紅透,轉(zhuǎn)身去接熱水時,白襯衫下擺掃過我膝蓋。
這個身高185的男人突然變得像中學(xué)時偷拿我橡皮的男孩,
聲音悶在保溫杯里:“可能是...新來的實(shí)習(xí)生?聽說策劃組最近挺受歡迎。
”我盯著他后頸的胎記,那形狀像極了他十二歲時為我爬樹摘風(fēng)箏,摔下來磕在臺階上的疤。
記憶突然翻涌——那天他趴在醫(yī)務(wù)室桌上寫作業(yè),陽光穿過他睫毛在草稿紙上投下陰影,
我看見他在“顧沉舟”三個字旁邊,用鉛筆輕輕畫了個歪歪扭扭的皮卡丘?!皩α?,
”他忽然轉(zhuǎn)身,口袋里的工牌晃了晃,“你們組那個數(shù)據(jù)漏洞,
我昨天在系統(tǒng)日志里看到異常IP了?!蔽颐偷靥ь^,撞進(jìn)他深褐色的瞳孔里。
那里面映著我錯愕的表情,還有凌晨三點(diǎn)他冒雨趕來公司的模樣——監(jiān)控畫面雖然模糊,
但我認(rèn)得清他跑步時習(xí)慣微側(cè)左肩的姿勢,和高中時替我擋足球的動作分毫不差。
午休時我在茶水間泡咖啡,玻璃倒影里看見顧沉舟抱著文件夾路過。他突然停住腳步,
從口袋里摸出個小盒子放在微波爐上,又假裝無事地離開。盒子里是袋速溶姜茶,
包裝上貼著便利貼:【聽陳姨說你生理期會肚子疼】。字跡力透紙背,
最后那個句號洇開小片墨漬,像他每次見我時,總?cè)滩蛔》杭t的耳尖。下午開項(xiàng)目對接會,
我抱著資料走進(jìn)會議室,迎面對上顧沉舟似笑非笑的目光。他面前擺著臺銀色筆記本,
屏幕上跳動的代碼正是我今早用來修復(fù)數(shù)據(jù)的那個程序,
注釋欄里赫然寫著:【給某個笨蛋的緊急救援】。“這是我們研發(fā)部新開發(fā)的修復(fù)工具,
”他指尖敲了敲鍵盤,嘴角揚(yáng)起只有我能看懂的弧度,“剛好在測試階段,
就拿來幫林策劃救個急?!睍h室里響起此起彼伏的驚嘆,我攥緊了手中的筆。
筆尖在筆記本上洇開團(tuán)墨漬,像極了他初中時替我修改數(shù)學(xué)試卷,
寫錯步驟后慌亂涂抹的樣子。原來那些匿名的幫助,那些恰到好處的“巧合”,
從來都不是命運(yùn)的饋贈,而是某個傻瓜從時光深處,就開始小心翼翼編織的網(wǎng)。
散會后我故意磨磨蹭蹭收拾東西,等所有人都離開后,才敢湊近他留在桌上的筆記本。
屏幕保護(hù)程序突然跳出,是張泛黃的照片——扎著馬尾辮的小女孩舉著滿分試卷,
旁邊的男孩蹲在地上,認(rèn)真地給她系歪掉的紅領(lǐng)巾?!耙淳凸饷髡蟮乜?。
”溫?zé)岬暮粑蝗环鬟^耳后,我驚得后退半步,后腰抵在會議桌上。
顧沉舟不知何時站在了我身后,指尖輕輕合上筆記本,“小學(xué)六年級的校運(yùn)會,
你說要是我拿了800米冠軍,就答應(yīng)和我做永遠(yuǎn)的同桌?!彼曇衾飵е娏靼愕恼痤?,
我看見自己倒映在他瞳孔里的模樣,睫毛正因?yàn)榫o張而微微顫抖。
記憶突然清晰起來:那天他沖過終點(diǎn)線后直接栽進(jìn)我懷里,
手臂上劃著道滲血的傷口——后來我才知道,他是為了避開跑道上突然出現(xiàn)的皮卡丘鑰匙扣,
才撞上了護(hù)欄。“所以你當(dāng)了程序員,”我仰頭看他,喉嚨發(fā)緊,
“就為了能在我每次卡住的時候,像變魔術(shù)一樣掏出修復(fù)代碼?”他忽然笑了,
那是種從胸腔里漫出來的、帶著釋然的笑。
指尖輕輕劃過我鎖骨處的淡疤——那是七歲時我們偷玩打火機(jī)留下的印記,
他說過這是我們之間“最浪漫的bug”?!傲窒?,”他叫我名字的語氣,
像極了那年暴雨中,他背著我跑過積水潭時,貼在我耳邊的那句“別怕”,
“其實(shí)從你把最后一塊糖醋排骨夾給我的那天起,我的心跳程序,就陷入了無限循環(huán)。
”窗外突然滾過陣悶雷,雨點(diǎn)噼里啪啦砸在玻璃上。顧沉舟伸手替我擋住濺進(jìn)來的雨水,
袖口露出截銀色手鏈——那是我去年送他的生日禮物,上面刻著他教我的第一串二進(jìn)制代碼。
手機(jī)在口袋里震動,我看見他剛發(fā)來的消息:【檢測到系統(tǒng)異常:林夏的笑容,
正在導(dǎo)致顧沉舟的心率突破安全閾值】。茶水間的微波爐突然“?!绷艘宦?,
打斷了即將溢出的沉默。顧沉舟后退半步,耳尖紅得快要滴血,
指節(jié)敲了敲我手里的姜茶袋:“記得用45度溫水泡,太燙會破壞成分。
”我看著他落荒而逃的背影,忽然笑出聲。原來有些喜歡,
早就藏在了時光的代碼里——是他每次幫我修電腦時故意留下的“隱藏彩蛋”,
是他在我加班時悄悄調(diào)整過的中央空調(diào)溫度,是他把“我在”設(shè)成快捷鍵的每個瞬間。
雨越下越大,我摸出包里的備用傘,卻在傘柄處摸到個硬物。
掏出來時 breath 一滯——那是個皮卡丘掛件,和今早我在便利店看見的一模一樣,
吊牌上還貼著張便利貼:【這次,換我來當(dāng)你的漏洞修復(fù)師】。
遠(yuǎn)處傳來他匆匆返回的腳步聲,夾雜著越來越急的心跳。
我忽然想起顧沉舟說過的話:“每個程序都有漏洞,但有些漏洞,是上天故意留給你的驚喜。
”比如此刻,在這個暴雨傾盆的清晨,
我終于讀懂了他藏在每個匿名幫助里的、最直白的告白。
第二章 凌晨三點(diǎn)的關(guān)東煮暗號鍵盤敲擊聲在寂靜的辦公室里格外刺耳,
我揉著酸澀的眼睛看了眼手機(jī)——凌晨兩點(diǎn)五十八分。
屏幕上的游戲場景建模圖像團(tuán)模糊的色塊,視網(wǎng)膜上還殘留著代碼的重影。
從上周項(xiàng)目啟動會開始,我已經(jīng)連續(xù)七天睡在公司沙發(fā)上,
咖啡機(jī)的指示燈比我床頭的小夜燈還熟悉我的黑眼圈。玻璃幕墻外的城市像座發(fā)光的蜂巢,
我摸出抽屜里最后一包泡面,包裝袋剛撕開個角,忽然有袋溫?zé)岬臇|西輕輕砸在桌上。
抬頭時只看見道黑色身影閃過安全通道,辦公椅在地板上劃出刺耳的聲響,我追過去時,
拐角處只剩下截沾著雨星的風(fēng)衣下擺。關(guān)東煮的香氣混著海苔味鉆進(jìn)鼻腔,
七八個格子里躺著熟悉的搭配:三顆魚丸、兩塊蘿卜、半根玉米,
還有永遠(yuǎn)被挑走海帶結(jié)的昆布湯底。塑料餐盒上粘著張便利貼,
力透紙背的字跡洇開小片墨漬:【少吃泡面,防腐劑會讓你嫁不出去。】心跳突然漏了半拍。
這行字的尾筆勾得特別重,像極了高中時顧沉舟給我補(bǔ)數(shù)學(xué)題,發(fā)現(xiàn)我把橢圓公式記錯時,
筆尖在草稿紙上戳出的小坑。那時他總坐在我后排,用圓規(guī)輕輕敲我腦袋:"林夏,
再記錯就把你賣給校門口的章魚燒老板。"手機(jī)在掌心震動,
鎖屏彈出顧沉舟的消息:【聽說你們組在干新項(xiàng)目?需要我?guī)湍悴楦偲窋?shù)據(jù)嗎?
】我盯著屏幕上跳動的光標(biāo),突然想起昨天中午在茶水間,
不過隨口和實(shí)習(xí)生提了句"末日余暉的場景渲染技術(shù)",
此刻辦公桌上那本《次世代場景搭建手冊》還壓在策劃案底下,扉頁夾著的老照片里,
七歲的我舉著滿分試卷,他蹲在旁邊給我系歪掉的紅領(lǐng)巾。指尖在鍵盤上敲了又敲,
最后只回了個_ok的 emoji。玻璃倒影里,自己眼下的青黑比便利貼上的墨漬還深。
拆開關(guān)東煮的筷子時,發(fā)現(xiàn)有人細(xì)心地把木刺磨平了,就像高中時他總在我拿到新書前,
用砂紙把毛邊磨得光滑——理由是"不想看你被紙割破手哭鼻子"。凌晨三點(diǎn)十五分,
我抱著空餐盒去茶水間,微波爐的藍(lán)光映出不銹鋼臺面上的水痕。
身后突然響起皮鞋踩在瓷磚上的聲響,顧沉舟抱著臺服務(wù)器從消防通道出來,
白襯衫領(lǐng)口扯開兩顆紐扣,露出冷白皮膚下跳動的青筋。"巧了。"他喘著氣,
服務(wù)器在懷里晃了晃,"來幫朋友修個系統(tǒng)。"我盯著那臺銹跡斑斑的舊服務(wù)器,
型號分明是我們公司三年前淘汰的IBM x3650。他耳尖紅得要滴血,
喉結(jié)隨著喘息上下滾動,
后頸還沾著片實(shí)驗(yàn)室的藍(lán)墨水——那是他每次通宵寫代碼都會蹭到的痕跡。"朋友?
"我挑眉,故意湊近他,"需要我?guī)兔蠭T部的同事嗎?顧博士?"他猛地后退半步,
服務(wù)器差點(diǎn)砸到腳面:"不用!就、小問題......"聲音越來越輕,
最后幾個字被吞咽聲悶回去。我忽然想起高三那年,他偷拿家里的競賽獎金給我買輔導(dǎo)書,
被我堵在書店角落時,也是這副耳尖通紅、語無倫次的模樣。電梯叮的一聲打開,
冷白色燈光里,他額角的汗珠順著下頜線滑進(jìn)衣領(lǐng)。我鬼使神差地掏出包里的紙巾,
踮腳替他擦拭額頭,指尖觸到他滾燙的皮膚時,他整個人像被按了暫停鍵,連睫毛都在發(fā)抖。
"下次......"我收回手,把紙巾塞進(jìn)他口袋,"別從消防通道搬服務(wù)器了,
電梯監(jiān)控會拍到的。"他瞳孔驟縮,喉結(jié)在我掌心蹭過:"你......""還有這個。
"我抽出他口袋里的便利貼本,翻開扉頁,
果然看見熟悉的字跡——那串我昨天苦思冥想的渲染參數(shù),被工整地寫在日期欄里,
旁邊畫著只歪歪扭扭的皮卡丘,尾巴卷成個問號。電梯到達(dá)一樓的提示音打破沉默。
顧沉舟猛地?fù)屵^便利貼本,轉(zhuǎn)身時帶起的風(fēng)把我劉海吹亂:"明天周末,
要不要去吃巷口那家小餛飩?你以前總說湯底像顧伯母煮的。
"我看著他幾乎是落荒而逃的背影,忽然笑出聲。玻璃幕墻外的雨不知何時下起來,
雨滴在地面濺起細(xì)碎的光,
恍惚間與記憶里那個暴雨天重疊——十六歲的顧沉舟把傘全傾在我這邊,
自己半邊身子泡在及膝的積水里,卻笑著說:"我喜歡淋雨,真的。
"那天我躲在他校服外套下,聞到混著雨水的雪松味,看見他攥著傘骨的手指因用力泛白。
后來才知道,他發(fā)著燒在我家樓下等了三個小時,就為了送我去上補(bǔ)習(xí)班。
手機(jī)在口袋里震動,新消息來自陌生郵箱。解壓文件時心跳陡然加速,
屏幕上跳出的建模數(shù)據(jù)正是我卡了三天的場景渲染參數(shù),
代碼末尾綴著行注釋:【皮卡丘需要陽光,而你需要睡眠。
——G】G是顧沉舟英文名的首字母,也是他寫代碼時永遠(yuǎn)不變的簽名。我摸著發(fā)燙的屏幕,
忽然想起便利貼上那句"嫁不出去",后知后覺紅了耳根。
原來從那年他在我課本上畫皮卡丘開始,有些東西就已經(jīng)在時光里悄悄埋下伏筆。
雨越下越大,我裹緊顧沉舟落在茶水間的西裝外套,往地鐵站走。路過便利店時,
櫥窗里的皮卡丘掛件在燈光下晃了晃,忽然想起他剛才欲言又止的模樣。
掏出手機(jī)拍照發(fā)給他,幾秒后收到回復(fù):【想要?明天幫你買。】【不是想要掛件。
】我盯著屏幕打字,指尖懸在發(fā)送鍵上猶豫三秒,最終刪掉后半句,
改成【是想謝謝送關(guān)東煮的人。】消息剛發(fā)出去,身后突然響起急促的腳步聲。
顧沉舟舉著把傘跑過來,頭發(fā)和肩膀都濕透了,懷里還抱著個紙袋:"給、你的。
"紙袋里是盒溫著的牛奶和袋暖寶寶,還有包我常吃的潤喉糖。他喘著氣,
雨水順著傘骨滴在我腳邊:"看你總喝黑咖啡......""顧沉舟。"我打斷他,
看著他在雨幕中模糊的眉眼,忽然有種想戳破窗戶紙的沖動,"高中那次暴雨,
你根本不是喜歡淋雨吧?"他猛地抬頭,雨傘在手里晃了晃,露出半張驚慌的臉。
遠(yuǎn)處的鐘樓敲響四點(diǎn)的鐘聲,雨幕中的便利店暖光朦朧,像極了記憶里某個溫柔的午后。
"其實(shí)我......"他開口,卻被突然炸響的雷聲蓋過。
我看著他慌亂中伸手護(hù)住我頭頂?shù)哪樱鋈恍α耍?/p>
從紙袋里拿出暖寶寶塞進(jìn)他掌心:"先說好,明天的小餛飩,我要加雙倍海帶結(jié)。"他愣住,
耳尖的紅色慢慢漫到臉頰,在蒼白的皮膚上洇開小片晚霞。雨聲漸大,
他忽然伸手將我往傘下帶了帶,自己半邊身子重新浸在雨里:"好,海帶結(jié)管夠。
"路燈在雨幕中暈開暖黃的光圈,我們并排走著,腳步聲在空曠的街道上回響。
我偷偷瞄向他的側(cè)臉,發(fā)現(xiàn)他耳尖始終維持著可疑的紅色,握著傘柄的手指卻漸漸放松。
路過那個總賣章魚燒的攤位時,他忽然開口:"其實(shí)......便利貼上的字,
我練了十遍。"我挑眉看他,他卻猛地加快腳步,聲音悶在衣領(lǐng)里:"沒什么。
"雨珠從傘骨滑落,在他睫毛上凝成晶亮的水珠,
我忽然想起他寫在我畢業(yè)紀(jì)念冊里的話:【愿你永遠(yuǎn)有陽光曬不干的夢想,和淋不濕的晴天。
】手機(jī)在口袋里震動,新郵件來自同一個匿名地址。這次是段動畫,
像素小人舉著關(guān)東煮在屏幕上跳來跳去,
背景音是我高中時總哼的那首跑調(diào)的《皮卡丘之歌》。動畫結(jié)尾,小人舉著塊牌子,
上面用像素點(diǎn)拼成:【下次加班,我負(fù)責(zé)煮宵夜,你負(fù)責(zé)看我。
】顧沉舟的背影在雨幕中清晰起來,我忽然明白,
那些藏在代碼里的參數(shù)、便利貼上的警告、凌晨三點(diǎn)的溫?zé)岵褪?,都是他說不出口的心事。
就像他永遠(yuǎn)把傘傾向我這邊,卻謊稱"我喜歡淋雨",有些溫柔,早就藏在時光的褶皺里,
等著被發(fā)現(xiàn)的那天。雨停時,我們剛好走到地鐵站。他把傘塞進(jìn)我手里,
自己轉(zhuǎn)身走進(jìn)雨里:"記得喝牛奶,別空腹喝咖啡。"我看著他的背影在晨光中逐漸模糊,
忽然舉起傘大喊:"顧沉舟!下次別用匿名郵箱了,直接發(fā)我微信就行!"他的腳步頓住,
肩膀劇烈顫抖了下。我以為他會回頭,卻見他抬手比了個OK的手勢,繼續(xù)大步向前走。
朝陽從地平線升起,將他的影子拉得老長,我看見那抹影子里,
有個小小的、跳躍的皮卡丘輪廓。地鐵里,我拆開牛奶盒,發(fā)現(xiàn)封口處貼著張便利貼,
這次的字跡工整得過分:【其實(shí)我不喜歡淋雨,我只喜歡看你在雨里笑。
——顧沉舟】指尖撫過紙面,忽然笑出眼淚。原來有些秘密,早就寫在時光的每一個注腳里,
等著被讀懂的人,輕輕揭開那層薄薄的糖衣,看見里面藏著的,最甜最暖的真心。
第三章 酒局上的代碼情書水晶吊燈在威士忌杯里碎成星芒,
王總的手第三次往我肩膀上搭時,我聞到了他領(lǐng)帶上沾著的廉價香水味。
會議室里的慶功宴不知何時變了味道,周遭同事的笑鬧聲像是隔了層毛玻璃,
模糊得讓人心慌。"林小姐這么漂亮,怎么能只喝果汁呢?
"他油膩的指節(jié)敲了敲我面前的酒杯,冰塊碰撞聲讓我后頸泛起冷汗。
三個月前隔壁組的小周就是在這種場合被灌進(jìn)醫(yī)院的,此刻我攥著裙角的手指已經(jīng)發(fā)麻,
卻怎么也說不出那句"我酒精過敏"。西裝革履的身影擠開人群時,
我正盯著杯壁上蜿蜒的水珠出神。顧沉舟的領(lǐng)帶歪在一側(cè),
袖口還沾著幾點(diǎn)藍(lán)墨水——是他實(shí)驗(yàn)室常用的那種速干墨水,
我曾在他熬夜寫論文時幫他清理過袖口。"王總好興致。"他擋在我身前時,
我聞到了隱約的雪松味混著煙草氣,這才想起他今天有個重要的項(xiàng)目評審會。
他指尖敲了敲桌上的酒杯,發(fā)出清越的響聲:"我記得貴公司上周剛上線的招標(biāo)系統(tǒng),
防火墻端口好像還開著1433?"王總的臉色瞬間變了。我瞳孔驟縮,
1433是SQL Server默認(rèn)端口,這種低級漏洞足以讓整個系統(tǒng)癱瘓。
顧沉舟從西裝內(nèi)袋抽出張名片,背面用鋼筆寫著串IP地址:"凌晨三點(diǎn)我會幫您遠(yuǎn)程修復(fù),
現(xiàn)在請讓開。"周圍突然響起此起彼伏的咳嗽聲,我這才發(fā)現(xiàn)不知何時,
整個酒局的人都在往這邊看。王總扯了扯領(lǐng)帶,皮笑肉不笑地說"年輕人別太狂",
卻在路過我身邊時壓低聲音:"林小姐運(yùn)氣真好,找了個黑客當(dāng)男朋友。"黑客?
我想開口反駁,卻被顧沉舟輕輕按在沙發(fā)上。他掏出名牌濕巾,
一片一片仔細(xì)擦拭我碰過酒杯的指尖,指腹擦過虎口時,
我忽然想起高二那年他替我抄黑板報,粉筆灰沾在虎口,也是這樣小心翼翼地用橡皮屑粘掉。
"為什么不直接說我們是鄰居?"我盯著他泛紅的耳尖,故意用了小時候的稱呼,
"舟舟哥哥?"他手指猛地頓住,濕巾在我無名指上碾出塊紅痕。