第3章
外包項目------------------------------------------ 外包項目,林深正在改一個接口的返回值格式。,他瞥了一眼,是內(nèi)部協(xié)作系統(tǒng)的消息,發(fā)件人顧晚,附件是一個壓縮包,文件名"玄機(jī)科技_技術(shù)對接文檔_v2.1",解壓后有三個PDF,總頁數(shù)一百一十二頁。消息正文只有一行字:林工,這是更新后的對接文檔,接口聯(lián)調(diào)需要三天內(nèi)完成,有問題隨時找我。,繼續(xù)改他的接口。,測試,提交,他才打開壓縮包,把三個PDF都下載下來,按順序排好,從第一個開始看。。這是他工作多年養(yǎng)成的習(xí)慣,手頭的事情沒做完,不切換。有人覺得這是專注,有人覺得這是固執(zhí),他不在意別人怎么看,只是覺得這樣效率更高。一件事做完,再做下一件,不留尾巴。---,四十頁,他用了十分鐘翻完。大部分是業(yè)務(wù)**介紹,用了很多圖表,排版工整,信息密度不高。他沒有做標(biāo)注,只是翻,翻完放到一邊。,三十八頁,這個他看得慢一些。接口設(shè)計是標(biāo)準(zhǔn)的RESTful風(fēng)格,命名規(guī)范,參數(shù)說明清楚,錯誤碼定義完整。他翻到第十二頁,有一個批量查詢接口,分頁參數(shù)的默認(rèn)值設(shè)置有點(diǎn)奇怪,他在旁邊用鉛筆畫了一個圈,繼續(xù)往下翻。,一個數(shù)據(jù)推送接口,回調(diào)地址的驗證方式用的是HMAC-SHA256簽名,密鑰管理方式文檔里沒有說清楚,他又畫了一個圈。,沒有新的問題,他把第二個PDF放到一邊。,三十四頁。他打開,開始翻。,示例代碼寫得很規(guī)范,注釋也完整。他翻得很快,像是在掃描,眼睛在頁面上掃過,只在有異常的地方停一下,停了就繼續(xù)走。,是SDK的核心功能模塊說明,數(shù)據(jù)加密、身份驗證、會話管理,每個模塊都有示例代碼。他在加密模塊的示例代碼上停了一下,看了幾秒,然后繼續(xù)翻。,第三十頁,第三十一頁。
第三十二頁,他翻過去了,又翻回來。
這一頁是SDK的高級功能說明,標(biāo)題是"節(jié)點(diǎn)同步",下面列了幾個接口的調(diào)用示例。他的視線落在第一個接口的路徑上:`/api/v1/node/shadow_sync`。
他盯著這行字,沒有動。
辦公區(qū)里有人在打電話,聲音不大,斷斷續(xù)續(xù)傳過來??照{(diào)的風(fēng)從頭頂吹下來,林深沒有感覺到。他只是坐在那里,盯著屏幕上那行接口路徑,像是在等什么東西從記憶里浮上來。
它浮上來了。
`shadow_sync`。這個命名方式,這個具體的詞,他在三年前見過。不是在任何一份公開的技術(shù)文檔里,不是在任何一個開源項目里,是在一個只有他和另外兩個人知道的地方見過。那時候這個接口是他寫的,或者說,是他參與設(shè)計的,用于一個不對外公開的數(shù)據(jù)同步協(xié)議,專門用來在不觸發(fā)常規(guī)監(jiān)控的情況下傳輸特定格式的數(shù)據(jù)。
那個協(xié)議從來沒有被公開過。
他把PDF翻回第一頁,重新開始看。
這次很慢。
---
他看了兩個小時。
窗外的天光慢慢暗下去,辦公區(qū)的燈自動亮起來,有人陸續(xù)收拾東西準(zhǔn)備走,有人去倒水,有人在討論今晚要不要加班。林深坐在工位上,沒有動,屏幕上的PDF一頁一頁往后翻,他的手指在觸控板上輕輕劃動,表情沒有任何變化。
他在找一件事:這份文檔里,除了`shadow_sync`這個接口,還有沒有其他他認(rèn)識的東西。
有。
第七頁,一個參數(shù)的命名方式,`delta_token`,這個詞的組合方式和他三年前用過的一個內(nèi)部變量名一模一樣。
第十四頁,一段錯誤碼的定義,從`E4001`到`E4009`,這個區(qū)間的劃分方式,和他當(dāng)年參與制定的一套內(nèi)部錯誤碼規(guī)范完全一致。
第二十九頁,SDK加密模塊里的一個函數(shù)簽名,參數(shù)順序和類型,和他記憶中的一段代碼高度吻合。
他把這幾處都用鉛筆做了標(biāo)注,然后把PDF合上,放在桌上。
他在椅子上坐了一會兒,沒有動。
旁邊小張收拾好包,站起來,說:"林深,不走了?"
"還有點(diǎn)東西。"林深說。
"行,別太晚。"小張走了。
辦公區(qū)里的人越來越少,最后只剩下幾個還在加班的,各自坐在工位上,互不打擾。林深把三個PDF重新打開,從頭開始,把所有他標(biāo)注過的地方列了一個清單,寫在一張便利貼上。
一共七處。
七處命名方式、參數(shù)結(jié)構(gòu)、錯誤碼規(guī)范,全部和三年前的那個項目有關(guān)聯(lián)。
這不是巧合。
他在椅子上靠了一下,把便利貼放在桌上,盯著上面的七行字看了很久。
三年前那個項目,代號"深海",參與的人不超過十個,產(chǎn)出的代碼從來沒有進(jìn)過任何公開的代碼倉庫,所有的文檔在任務(wù)結(jié)束后都按規(guī)程銷毀了。他以為那件事已經(jīng)徹底結(jié)束了,以為那段代碼已經(jīng)消失了,以為那些只有內(nèi)部人才知道的命名習(xí)慣、錯誤碼規(guī)范、接口設(shè)計思路,已經(jīng)隨著那個項目一起埋進(jìn)了某個沒有人會再去翻的地方。
但它們出現(xiàn)在這里了。出現(xiàn)在一個普通的商業(yè)外包項目的SDK文檔里,出現(xiàn)在一家叫玄機(jī)科技的公司提供的接口規(guī)范里,出現(xiàn)在他的工位上,出現(xiàn)在他的屏幕上,出現(xiàn)在一個下午兩點(diǎn)發(fā)來的壓縮包里。
有人把那些東西拿出來用了。
他不知道是誰,不知道為什么,不知道這意味著什么。但他知道一件事:這不是技術(shù)上的巧合,也不是命名習(xí)慣的偶然重合。七處,七個不同維度的特征,同時出現(xiàn)在同一份文檔里,概率低到可以忽略不計。
有人知道那段代碼是他寫的。或者,有人根本不在乎是誰寫的,只是在用。
這兩種可能性,他都不喜歡。
他想起上周那條加密短信。發(fā)件人"已注銷",內(nèi)容是一串?dāng)?shù)字:14-07-2023-0317-DELTA-9。他當(dāng)時看了很久,沒有解出來,把手機(jī)扣在桌上,以為是誤發(fā),或者是某種騷擾。
現(xiàn)在他重新想了一遍。
14-07-2023,是一個日期,三年前的七月十四日。0317,可能是時間,凌晨三點(diǎn)十七分。DELTA-9,這個詞他有印象,"深海"任務(wù)里有一個內(nèi)部編號體系,DELTA開頭的是數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識符,9號節(jié)點(diǎn)是整個系統(tǒng)里權(quán)限最高的一個。
如果這個解讀是對的,那條短信的意思是:三年前七月十四日凌晨三點(diǎn)十七分,9號節(jié)點(diǎn)。
那個時間點(diǎn),他記得。那是"深海"任務(wù)出事的那一晚。
他在椅子上坐了一會兒,沒有動。窗外的天已經(jīng)完全黑了,辦公區(qū)的燈把玻璃變成了鏡子,他能看到自己的輪廓,模糊的,疊在城市夜景上面。
有人在提醒他?;蛘撸腥嗽谠囂剿?。
他把便利貼折起來,放進(jìn)褲子口袋,然后關(guān)掉PDF,打開IDE,繼續(xù)寫他的接口代碼。他的手指在鍵盤上敲擊,速度均勻,表情平靜,和平時沒有任何區(qū)別。
只是他的眼神,和平時不太一樣。
---
快九點(diǎn)的時候,顧晚從會議室出來,經(jīng)過林深的工位,停了一下。
"還在?"她說。
"嗯。"林深沒有抬頭。
"文檔看完了嗎?"
"看完了。"
顧晚停了一秒,"有問題嗎?"
林深把視線從屏幕上移開,看了她一眼,"第二個PDF,第十九頁,回調(diào)地址的密鑰管理方式文檔里沒說清楚,需要玄機(jī)科技那邊補(bǔ)充一下。"
顧晚在手機(jī)上記了什么,"好,我明天跟他們確認(rèn)。還有嗎?"
"暫時沒有。"
顧晚點(diǎn)了點(diǎn)頭,"那三天的工期沒問題?"
"沒問題。"
她走了。林深看著她的背影消失在走廊里,然后把視線收回來,重新看屏幕。
他口袋里的便利貼,他沒有提。
顧晚問有沒有問題,他說暫時沒有。這是實話,從接口聯(lián)調(diào)的角度來說,確實暫時沒有問題。密鑰管理那個細(xì)節(jié)是真實的技術(shù)問題,他提了,她記了,這件事就算交代清楚了。
至于便利貼上的七行字,那不是接口聯(lián)調(diào)的問題。
他把屏幕上的代碼往下滾了幾行,找到剛才寫到一半的函數(shù),繼續(xù)寫。函數(shù)不復(fù)雜,二十行以內(nèi)能寫完,他寫了十五行,停下來,看了一眼,改了兩個變量名,然后繼續(xù)。
辦公區(qū)里只剩下三個人了,各自坐在工位上,互不打擾。外面走廊里偶爾有保潔推著車經(jīng)過,輪子在地板上發(fā)出輕微的滾動聲。
林深寫完函數(shù),保存,切換到瀏覽器,打開玄機(jī)科技的官網(wǎng)。
官網(wǎng)做得很精致,首頁是一張全屏的深色**圖,上面是幾行白色的字,說的是公司的業(yè)務(wù)方向:企業(yè)級數(shù)據(jù)安全解決方案。導(dǎo)航欄有產(chǎn)品、案例、關(guān)于我們幾個選項,他依次點(diǎn)開,看了一遍。
公司成立于四年前,總部在上海,員工規(guī)模兩百到五百人,主要客戶是金融和政務(wù)行業(yè)。創(chuàng)始人和CEO的名字叫沈行,頁面上有一張照片,四十五歲左右,西裝,笑容,看起來和任何一個科技公司的創(chuàng)始人沒有區(qū)別。
林深盯著這個名字看了一會兒。
沈行。
他在記憶里搜索了一下,沒有找到任何關(guān)聯(lián)。這個名字,他以前沒有聽說過。
但"深海"任務(wù)里,有些人他從來沒有見過真實的名字。他們只有代號,只有權(quán)限級別,只有在系統(tǒng)里留下的操作記錄。沈行這個名字,可能是真名,也可能不是。
他把官網(wǎng)的頁面截了一張圖,保存在桌面上一個沒有名字的文件夾里,然后關(guān)掉瀏覽器,重新打開IDE,繼續(xù)寫代碼。
函數(shù)寫完了,他開始寫下一個。代碼在屏幕上一行一行增加,邏輯清晰,結(jié)構(gòu)干凈,注釋簡短,每一個變量名都普通到不能再普通。
他寫代碼的時候,腦子里同時在想另一件事。
便利貼上的七處,加密短信,玄機(jī)科技,沈行。這幾個點(diǎn),他還沒有辦法把它們連成一條線。但他知道,這條線是存在的。他只是還沒有找到連接的方式。
他不著急。他等了三年了,不差這幾天。等信息足夠了,線索自然會連起來,他只需要繼續(xù)做林深,繼續(xù)改他的接口,繼續(xù)等。
窗外,城市的夜晚已經(jīng)完全黑下來了。
第三十二頁,他翻過去了,又翻回來。
這一頁是SDK的高級功能說明,標(biāo)題是"節(jié)點(diǎn)同步",下面列了幾個接口的調(diào)用示例。他的視線落在第一個接口的路徑上:`/api/v1/node/shadow_sync`。
他盯著這行字,沒有動。
辦公區(qū)里有人在打電話,聲音不大,斷斷續(xù)續(xù)傳過來??照{(diào)的風(fēng)從頭頂吹下來,林深沒有感覺到。他只是坐在那里,盯著屏幕上那行接口路徑,像是在等什么東西從記憶里浮上來。
它浮上來了。
`shadow_sync`。這個命名方式,這個具體的詞,他在三年前見過。不是在任何一份公開的技術(shù)文檔里,不是在任何一個開源項目里,是在一個只有他和另外兩個人知道的地方見過。那時候這個接口是他寫的,或者說,是他參與設(shè)計的,用于一個不對外公開的數(shù)據(jù)同步協(xié)議,專門用來在不觸發(fā)常規(guī)監(jiān)控的情況下傳輸特定格式的數(shù)據(jù)。
那個協(xié)議從來沒有被公開過。
他把PDF翻回第一頁,重新開始看。
這次很慢。
---
他看了兩個小時。
窗外的天光慢慢暗下去,辦公區(qū)的燈自動亮起來,有人陸續(xù)收拾東西準(zhǔn)備走,有人去倒水,有人在討論今晚要不要加班。林深坐在工位上,沒有動,屏幕上的PDF一頁一頁往后翻,他的手指在觸控板上輕輕劃動,表情沒有任何變化。
他在找一件事:這份文檔里,除了`shadow_sync`這個接口,還有沒有其他他認(rèn)識的東西。
有。
第七頁,一個參數(shù)的命名方式,`delta_token`,這個詞的組合方式和他三年前用過的一個內(nèi)部變量名一模一樣。
第十四頁,一段錯誤碼的定義,從`E4001`到`E4009`,這個區(qū)間的劃分方式,和他當(dāng)年參與制定的一套內(nèi)部錯誤碼規(guī)范完全一致。
第二十九頁,SDK加密模塊里的一個函數(shù)簽名,參數(shù)順序和類型,和他記憶中的一段代碼高度吻合。
他把這幾處都用鉛筆做了標(biāo)注,然后把PDF合上,放在桌上。
他在椅子上坐了一會兒,沒有動。
旁邊小張收拾好包,站起來,說:"林深,不走了?"
"還有點(diǎn)東西。"林深說。
"行,別太晚。"小張走了。
辦公區(qū)里的人越來越少,最后只剩下幾個還在加班的,各自坐在工位上,互不打擾。林深把三個PDF重新打開,從頭開始,把所有他標(biāo)注過的地方列了一個清單,寫在一張便利貼上。
一共七處。
七處命名方式、參數(shù)結(jié)構(gòu)、錯誤碼規(guī)范,全部和三年前的那個項目有關(guān)聯(lián)。
這不是巧合。
他在椅子上靠了一下,把便利貼放在桌上,盯著上面的七行字看了很久。
三年前那個項目,代號"深海",參與的人不超過十個,產(chǎn)出的代碼從來沒有進(jìn)過任何公開的代碼倉庫,所有的文檔在任務(wù)結(jié)束后都按規(guī)程銷毀了。他以為那件事已經(jīng)徹底結(jié)束了,以為那段代碼已經(jīng)消失了,以為那些只有內(nèi)部人才知道的命名習(xí)慣、錯誤碼規(guī)范、接口設(shè)計思路,已經(jīng)隨著那個項目一起埋進(jìn)了某個沒有人會再去翻的地方。
但它們出現(xiàn)在這里了。出現(xiàn)在一個普通的商業(yè)外包項目的SDK文檔里,出現(xiàn)在一家叫玄機(jī)科技的公司提供的接口規(guī)范里,出現(xiàn)在他的工位上,出現(xiàn)在他的屏幕上,出現(xiàn)在一個下午兩點(diǎn)發(fā)來的壓縮包里。
有人把那些東西拿出來用了。
他不知道是誰,不知道為什么,不知道這意味著什么。但他知道一件事:這不是技術(shù)上的巧合,也不是命名習(xí)慣的偶然重合。七處,七個不同維度的特征,同時出現(xiàn)在同一份文檔里,概率低到可以忽略不計。
有人知道那段代碼是他寫的。或者,有人根本不在乎是誰寫的,只是在用。
這兩種可能性,他都不喜歡。
他想起上周那條加密短信。發(fā)件人"已注銷",內(nèi)容是一串?dāng)?shù)字:14-07-2023-0317-DELTA-9。他當(dāng)時看了很久,沒有解出來,把手機(jī)扣在桌上,以為是誤發(fā),或者是某種騷擾。
現(xiàn)在他重新想了一遍。
14-07-2023,是一個日期,三年前的七月十四日。0317,可能是時間,凌晨三點(diǎn)十七分。DELTA-9,這個詞他有印象,"深海"任務(wù)里有一個內(nèi)部編號體系,DELTA開頭的是數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識符,9號節(jié)點(diǎn)是整個系統(tǒng)里權(quán)限最高的一個。
如果這個解讀是對的,那條短信的意思是:三年前七月十四日凌晨三點(diǎn)十七分,9號節(jié)點(diǎn)。
那個時間點(diǎn),他記得。那是"深海"任務(wù)出事的那一晚。
他在椅子上坐了一會兒,沒有動。窗外的天已經(jīng)完全黑了,辦公區(qū)的燈把玻璃變成了鏡子,他能看到自己的輪廓,模糊的,疊在城市夜景上面。
有人在提醒他?;蛘撸腥嗽谠囂剿?。
他把便利貼折起來,放進(jìn)褲子口袋,然后關(guān)掉PDF,打開IDE,繼續(xù)寫他的接口代碼。他的手指在鍵盤上敲擊,速度均勻,表情平靜,和平時沒有任何區(qū)別。
只是他的眼神,和平時不太一樣。
---
快九點(diǎn)的時候,顧晚從會議室出來,經(jīng)過林深的工位,停了一下。
"還在?"她說。
"嗯。"林深沒有抬頭。
"文檔看完了嗎?"
"看完了。"
顧晚停了一秒,"有問題嗎?"
林深把視線從屏幕上移開,看了她一眼,"第二個PDF,第十九頁,回調(diào)地址的密鑰管理方式文檔里沒說清楚,需要玄機(jī)科技那邊補(bǔ)充一下。"
顧晚在手機(jī)上記了什么,"好,我明天跟他們確認(rèn)。還有嗎?"
"暫時沒有。"
顧晚點(diǎn)了點(diǎn)頭,"那三天的工期沒問題?"
"沒問題。"
她走了。林深看著她的背影消失在走廊里,然后把視線收回來,重新看屏幕。
他口袋里的便利貼,他沒有提。
顧晚問有沒有問題,他說暫時沒有。這是實話,從接口聯(lián)調(diào)的角度來說,確實暫時沒有問題。密鑰管理那個細(xì)節(jié)是真實的技術(shù)問題,他提了,她記了,這件事就算交代清楚了。
至于便利貼上的七行字,那不是接口聯(lián)調(diào)的問題。
他把屏幕上的代碼往下滾了幾行,找到剛才寫到一半的函數(shù),繼續(xù)寫。函數(shù)不復(fù)雜,二十行以內(nèi)能寫完,他寫了十五行,停下來,看了一眼,改了兩個變量名,然后繼續(xù)。
辦公區(qū)里只剩下三個人了,各自坐在工位上,互不打擾。外面走廊里偶爾有保潔推著車經(jīng)過,輪子在地板上發(fā)出輕微的滾動聲。
林深寫完函數(shù),保存,切換到瀏覽器,打開玄機(jī)科技的官網(wǎng)。
官網(wǎng)做得很精致,首頁是一張全屏的深色**圖,上面是幾行白色的字,說的是公司的業(yè)務(wù)方向:企業(yè)級數(shù)據(jù)安全解決方案。導(dǎo)航欄有產(chǎn)品、案例、關(guān)于我們幾個選項,他依次點(diǎn)開,看了一遍。
公司成立于四年前,總部在上海,員工規(guī)模兩百到五百人,主要客戶是金融和政務(wù)行業(yè)。創(chuàng)始人和CEO的名字叫沈行,頁面上有一張照片,四十五歲左右,西裝,笑容,看起來和任何一個科技公司的創(chuàng)始人沒有區(qū)別。
林深盯著這個名字看了一會兒。
沈行。
他在記憶里搜索了一下,沒有找到任何關(guān)聯(lián)。這個名字,他以前沒有聽說過。
但"深海"任務(wù)里,有些人他從來沒有見過真實的名字。他們只有代號,只有權(quán)限級別,只有在系統(tǒng)里留下的操作記錄。沈行這個名字,可能是真名,也可能不是。
他把官網(wǎng)的頁面截了一張圖,保存在桌面上一個沒有名字的文件夾里,然后關(guān)掉瀏覽器,重新打開IDE,繼續(xù)寫代碼。
函數(shù)寫完了,他開始寫下一個。代碼在屏幕上一行一行增加,邏輯清晰,結(jié)構(gòu)干凈,注釋簡短,每一個變量名都普通到不能再普通。
他寫代碼的時候,腦子里同時在想另一件事。
便利貼上的七處,加密短信,玄機(jī)科技,沈行。這幾個點(diǎn),他還沒有辦法把它們連成一條線。但他知道,這條線是存在的。他只是還沒有找到連接的方式。
他不著急。他等了三年了,不差這幾天。等信息足夠了,線索自然會連起來,他只需要繼續(xù)做林深,繼續(xù)改他的接口,繼續(xù)等。
窗外,城市的夜晚已經(jīng)完全黑下來了。
閱讀下一章(解鎖全文)
點(diǎn)擊即可暢讀完整版全部內(nèi)容
相關(guān)書籍
友情鏈接