星途科技的辦公室裏,打印機“咔噠咔噠”的聲響格外刺耳。林野盯着電腦屏幕上王經理發來的需求文檔,眉頭微不可察地皺了一下——文檔裏的要求混亂得像一團纏結的毛線,一會兒要給官網首頁加個“會旋轉的彩虹彈幕”,一會兒又要求用戶注冊時“彈出帶音效的卡通提示框”,最離譜的是,居然要在產品介紹頁裏嵌入一個“能根據訪客IP自動播放對應城市方言”的插件。
“小林,這需求你能搞定不?”王經理搓着手走過來,地中海發型上的發膠在燈光下反光,“客戶那邊催得緊,說是要做‘年輕化改造’,吸引更多年輕人點擊。”
林野心裏冷笑。這種華而不實的需求,不僅會拖慢官網加載速度,還容易引發兼容性問題,稍微懂點技術的人都知道是瞎折騰。但他臉上卻露出爲難的表情,撓了撓頭:“王經理,這些功能……有點復雜啊。我以前只學過基礎的HTML和CSS,這種帶交互和音效的,可能得查資料慢慢試。”
“慢慢試沒關系,下周之前搞定就行!”王經理拍了拍他的肩膀,語氣輕鬆,“我看好你,年輕人多鑽研鑽研,總能學會的。”
說完,王經理轉身去了茶水間,留下林野和鄰座的張鵬面面相覷。
“這客戶是瘋了吧?”張鵬摘下黑框眼鏡,揉了揉眼睛,“彩虹彈幕?方言插件?這哪是年輕化改造,這是把官網改成小廣告彈窗啊!”
“沒辦法,客戶是上帝嘛。”林野笑了笑,打開瀏覽器,故意搜索“如何用基礎代碼做旋轉彈幕”,屏幕上彈出一堆雜亂的教程,他假裝認真地逐一點開,實則餘光掃過辦公室的各個角落。
自從知道唐小糖的黑客身份和暗影組織在青石板街的據點後,他對身邊的一切都多了份警惕。星途科技雖然看起來是家普通的小公司,但王經理偶爾提到的“特殊客戶”、辦公室裏偶爾出現的陌生訪客,都讓他覺得不對勁。尤其是上周面試時,王經理問他“能不能接受臨時加班處理緊急項目”,當時沒在意,現在想來,那語氣裏似乎藏着別的意味。
林野點開一個漏洞百出的彈幕教程,故意復制了一段錯誤的代碼粘貼到編輯器裏,屏幕立刻彈出紅色的報錯提示。他“哎呀”了一聲,引得張鵬湊過來:“怎麼了?”
“代碼報錯了,不知道哪裏錯了。”林野指着屏幕,一臉茫然。
張鵬看了一眼,無奈地說:“這教程是三年前的,早就不適用了。你得用CSS3的animation屬性,我給你找個靠譜的例子。”
張鵬熟練地搜索出正確的教程,林野假裝恍然大悟:“原來如此,謝謝鵬哥,我怎麼沒想到用animation呢。”
“你剛畢業,經驗少很正常。”張鵬拍了拍他的肩膀,“慢慢來,以後遇到問題隨時問我。”
林野點點頭,心裏卻在快速盤算。張鵬看起來是個普通的技術宅,對公司的異常毫無察覺,暫時可以信任。但他不能一直依賴張鵬,得自己“摸索”出解決辦法,既不能暴露真實水平,又要按時完成任務。
接下來的兩天,林野開始了“磨洋工”式的工作。每天早上準時到公司,先是對着需求文檔發呆半小時,然後慢吞吞地寫幾行代碼,遇到簡單的問題也要假裝研究半天,偶爾還會故意留幾個小bug,等張鵬路過時“碰巧”發現,再一臉感激地請教。
周三下午,王經理突然把他叫到辦公室:“小林,客戶那邊催了,彩虹彈幕做出來沒?他們想先看看效果。”
“差不多了,就是有點小問題。”林野打開電腦,展示了一個極其簡陋的彈幕效果——幾條彩色的文字在屏幕頂端緩慢旋轉,卡頓得厲害,還時不時會和頁面標題重疊。
“這……這也太粗糙了吧?”王經理皺起眉,“客戶要的是‘酷炫’的效果,你這看起來像十年前的網頁遊戲。”
“我盡力了王經理。”林野露出委屈的表情,“我查了好多資料,只能做成這樣了。要麼……我們跟客戶說說,簡化一下需求?比如把旋轉彈幕改成普通的滾動彈幕?”
王經理猶豫了一下,拿起手機給客戶打電話。林野站在旁邊,耳朵微微動了動——他能清晰地聽到電話那頭傳來的聲音,是個男人,語氣不耐煩,提到了“必須按要求做”“下周要上線”“不然扣尾款”。
掛了電話,王經理臉色難看:“客戶不同意簡化,說這是‘核心需求’。小林,你再加加班,實在不行,我找外包幫你?”
“別別別!”林野連忙擺手,“我再試試,說不定能找到更好的方法。”
他知道,一旦找外包,就會接觸到外人,可能暴露自己的身份。而且他隱約覺得,這個“奇葩需求”背後,可能不只是客戶的任性——那個電話裏的聲音,雖然模糊,但語氣裏的命令式口吻,讓他想起了暗影組織裏那些頤指氣使的小頭目。
回到工位,林野假裝焦慮地抓了抓頭發,實則打開了一個隱藏的代碼文件夾——裏面是他昨天用空餘時間寫好的完整代碼,不僅能實現彩虹彈幕、方言插件等所有需求,還優化了加載速度,解決了兼容性問題。但他不能直接用,得“分階段”地展示成果。
傍晚下班前,林野“攻克”了彈幕的卡頓問題,展示給王經理看:“王經理,我調整了動畫幀率,不卡頓了,就是和標題重疊的問題還沒解決。”
“不錯不錯,有進步!”王經理的臉色緩和了些,“明天繼續加油,解決重疊問題,爭取後天開始做方言插件。”
“好的!”
下班走出公司,林野沒有立刻去地鐵站,而是繞到公司後面的小巷子。這裏是監控盲區,他拿出手機,撥通了老K的電話。
“查到星途科技的背景了嗎?”林野的聲音壓低,和白天的溫和截然不同。
“查了,表面上是家普通的科技公司,法人是個叫李建國的老頭,實際控制人不明。”老K的聲音從電話裏傳來,帶着電流聲,“這家公司三個月前接了個‘特殊項目’,合作方是海嵐集團的子公司,而那個子公司,和暗影組織有資金往來。”
海嵐集團!林野的瞳孔收縮了一下。之前蘇瑤提到過組織與海嵐集團有關,現在星途科技又和海嵐集團的子公司合作,這絕不是巧合。看來他入職的這家小公司,很可能是暗影組織安插在市區的眼線,或者是用來處理“技術相關”的髒活。
“那個‘特殊項目’是什麼?”
“不清楚,保密級別很高,我沒能查到具體內容。”老K頓了頓,“另外,唐小糖今天下午去了青石板街附近的咖啡館,和一個穿西裝的男人見了面,兩人聊了不到十分鍾就分開了,那個男人的身份還在查。”
唐小糖居然還在查青石板街的事,這個小姑娘真是膽子大。林野皺起眉:“盯着她,別讓她出事。蘇瑤那邊有動靜嗎?”
“蘇瑤今天下午去了趟銀行,取了一筆現金,然後回了梧桐花園,沒再出來。”
“知道了,有新情況隨時告訴我。”
掛了電話,林野揉了揉眉心。星途科技、海嵐集團、暗影組織,這三者之間的聯系越來越清晰,而他就像掉進了一張無形的網,越掙扎纏得越緊。他現在有點後悔選擇這家公司,但事到如今,只能繼續僞裝下去,從內部打探更多消息。
回到梧桐花園,林野剛打開門,就聞到一股香味。唐小糖系着粉色的蕾絲圍裙,在廚房忙碌着,鍋裏燉着什麼,咕嘟咕嘟地冒着泡。
“林野哥回來啦!”唐小糖探出頭,臉上帶着甜美的笑容,“我今天直播賺了點錢,買了排骨,燉了排骨湯,馬上就好啦!”
“麻煩你了。”林野笑了笑,放下帆布包,走進客廳。蘇瑤坐在沙發上,手裏拿着一份財經報紙,報紙擋住了她的臉,只露出線條優美的下頜。
“今天公司事多嗎?”蘇瑤突然開口,報紙沒動,聲音從報紙後面傳來。
“還行,有點小項目要趕。”林野在她對面的沙發上坐下,“客戶提了些奇怪的需求,有點頭疼。”
“哦?什麼需求?”蘇瑤的聲音依舊平淡,卻帶着一絲不易察覺的試探。
“比如讓官網加旋轉彈幕、方言插件之類的,華而不實。”林野故作抱怨,“可能客戶想讓官網看起來更熱鬧吧。”
蘇瑤沒再追問,只是“嗯”了一聲,翻過報紙的一頁,紙張摩擦的聲音在安靜的客廳裏格外清晰。
林野知道,蘇瑤還在懷疑他。從上次深夜帶包裹回來後,蘇瑤對他的關注明顯多了,偶爾會問他公司的事,觀察他的反應。他必須更加小心,不能露出任何破綻。
晚飯時,唐小糖熱情地給林野和蘇瑤盛湯:“蘇姐,林野哥,嚐嚐我的手藝!我媽媽教我的,她燉排骨可厲害了!”
蘇瑤接過湯碗,輕輕抿了一口,點了點頭:“味道不錯。”
林野也嚐了一口,排骨湯燉得軟爛入味,帶着淡淡的玉米清香:“很好喝,小糖很能幹。”
“真的嗎?太好了!”唐小糖眼睛一亮,興奮地說,“以後我經常做給你們吃!對了林野哥,你公司的項目要是做不完,我可以幫你看看呀,我雖然不是程序員,但也懂點代碼。”
林野心裏一動,唐小糖這是在試探他?還是真的想幫忙?他笑着婉拒:“不用了,謝謝你小糖。都是基礎代碼,我自己慢慢琢磨就行,別耽誤你直播。”
唐小糖有點失望,但也沒強求:“好吧,那你要是遇到解決不了的問題,一定要告訴我哦。”
晚飯過後,唐小糖收拾碗筷,林野回到自己的房間。他打開電腦,登錄加密郵箱,老K發來新的郵件:“唐小糖見面的男人身份查到了,是‘幽靈’組織的聯絡員,他們在交接青石板街據點的最新情報。另外,星途科技的‘特殊項目’可能與監控系統有關,海嵐集團的子公司正在采購大量的監控設備。”
監控系統?林野皺起眉。暗影組織采購監控設備,是爲了監視誰?是蘇瑤?唐小糖?還是他自己?
他打開白天“磨洋工”時寫的代碼,看着屏幕上流暢的動畫效果和簡潔的邏輯,想起了特工時期的日子。那時候,他負責搭建組織的內部監控系統,代碼寫得又快又精準,從來不會像現在這樣“藏着掖着”。
但現在,他必須隱藏。爲了趙磊的遺言,爲了來之不易的平靜,哪怕面前的工作再奇葩,再無聊,他也得忍。
周四早上,林野“攻克”了彈幕與標題重疊的問題,王經理看了之後很滿意:“小林,有進步!今天開始做方言插件,客戶給了一份方言音頻文件,你看看怎麼嵌入進去。”
王經理遞過來一個U盤,林野接過,假裝好奇地問:“這插件真的能根據IP識別城市嗎?我以前沒做過這種功能。”
“客戶說有現成的IP庫,你直接調用就行。”王經理拍了拍他的肩膀,“加油,做完這個,這個月給你加兩百塊獎金。”
林野心裏冷笑,兩百塊獎金就想讓他做這種麻煩事。但他臉上還是露出感激的表情:“謝謝王經理,我一定努力!”
插入U盤,林野打開裏面的文件——除了方言音頻,還有一個加密的IP庫。他掃了一眼IP庫的文件名,瞳孔微微收縮——那串字符是暗影組織內部常用的加密格式,這個IP庫,根本不是普通的城市IP庫,而是能精準定位到具體街道、甚至具體建築的高精度定位庫!
星途科技的這個“特殊項目”,果然和監控有關。他們要做的根本不是什麼“年輕化改造”,而是通過官網的插件,收集訪客的精準定位信息!
林野的手指在鍵盤上停頓了兩秒,然後假裝笨拙地打開IP庫:“王經理,這個IP庫是加密的,我打不開啊。”
“客戶沒給你解密密鑰嗎?”王經理皺起眉,拿出手機給客戶打電話。
林野趁他打電話的間隙,快速將IP庫復制到自己的移動硬盤裏——這是重要的證據,必須保存下來。
很快,王經理掛了電話,遞給林野一串密鑰:“客戶剛發過來的,你試試。”
林野輸入密鑰,IP庫成功打開。他假裝研究了半天,說:“這個功能有點復雜,我得先學習一下IP定位的原理,可能要晚點才能開始做。”
“行,你慢慢研究,別着急。”王經理沒多想,轉身走了。
林野鬆了口氣,打開瀏覽器,故意搜索“如何調用IP庫實現定位”,實則將復制下來的IP庫加密後發給了老K,並附言:“星途科技在收集精準定位信息,IP庫是暗影組織的格式,懷疑與監控項目有關,請求分析。”
做完這一切,林野關掉郵箱,開始“認真”地研究IP定位的基礎教程。張鵬路過時,看到他滿屏幕的基礎知識點,拍了拍他的肩膀:“小林,你這也太較真了,直接找個現成的API調用就行,不用從頭學原理。”
“啊?還有這種東西?”林野故作驚訝,“鵬哥,什麼是API啊?”
張鵬無奈地搖搖頭,給了他一個常用的定位API鏈接:“直接調用這個,比你自己寫簡單多了。”
“太謝謝鵬哥了!你真是我的救星!”林野一臉感激地說。
看着張鵬離開的背影,林野的眼神沉了下來。他知道,星途科技的水比他想象的還深。這個“特殊項目”背後,很可能是暗影組織在利用星途科技的技術,監控海嵐市的特定目標,而他,不小心成了這個監控網絡裏的一顆棋子。
下午下班前,林野“勉強”做出了方言插件的雛形——只能識別幾個大城市的IP,播放對應的方言,而且經常出錯。王經理看了之後,雖然不滿意,但也沒多說什麼:“先這樣吧,明天再優化,爭取下周上線。”
走出公司,林野沒有像往常一樣去地鐵站,而是打車去了青石板街附近。他想親自看看那個暗影組織的據點,順便確認唐小糖的安全。
青石板街的人很多,熙熙攘攘的遊客和當地居民混在一起,很難分辨誰是暗影組織的人。林野逛了一圈,沒有發現可疑人員,卻在一家不起眼的茶館門口,看到了唐小糖的粉色自行車——她又來這裏了。
林野沒有靠近,只是在街角的報刊亭假裝買報紙,目光警惕地掃過茶館周圍。幾分鍾後,唐小糖從茶館裏出來,手裏拿着一個白色的信封,快步走向自行車,騎上就走。
林野立刻打車跟上。唐小糖沒有回梧桐花園,而是去了市中心的一家圖書館,把信封交給了一個穿校服的女生。女生接過信封,轉身走進了圖書館的深處。
林野皺起眉。唐小糖的動作很謹慎,顯然是在傳遞情報。但她這樣頻繁地活動,很容易被暗影組織盯上,太危險了。
回到梧桐花園時,蘇瑤正在陽台打電話,聲音壓得很低,但林野還是聽到了“據點”“監控”“轉移”幾個字。看到林野回來,蘇瑤立刻掛了電話,轉身走進了房間,沒有和他說話。
林野回到自己的房間,靠在門上,疲憊地閉上眼。星途科技的監控項目、蘇瑤的秘密行動、唐小糖的情報傳遞,這一切像一團亂麻,纏繞着他,讓他喘不過氣。
他原本只想過平凡的生活,卻沒想到,住進這棟合租公寓後,反而被卷入了更深的漩渦。他不知道自己還能僞裝多久,也不知道這場圍繞着暗影組織的較量,最終會以怎樣的方式結束。
但他知道,他不能退縮。爲了趙磊的遺言,爲了身邊這兩個同樣身處險境的室友,他必須撐下去,哪怕要繼續扮演這個“普通程序員”的角色,哪怕要面對那些奇葩又危險的職場需求。
窗外的夜色越來越濃,梧桐花園的燈光星星點點。林野走到書桌前,打開電腦,繼續編寫那個“粗糙”的方言插件。屏幕上的代碼一行行跳動,看似普通,卻藏着他對過往的隱忍,和對未來的掙扎。