第158章 搜尋引擎(5K)
第158章 搜尋引擎(5K)
「按昨天五百一十五萬的流水,聲訊台通道的一百六十六萬扣掉將近一半的過路費,到手大概九十萬出頭。移動夢網通道的三百四十九萬,只扣百分之十五,到手接近三百萬。」蔣碩把計算器從兜里掏出來啪啪按了兩下,轉過來給白宇航看,「合計到手利潤三百九十萬。要是放在以前全走聲訊台,同樣五百一十萬的流水,過路費扣完到手只有二百八十多萬。一天多賺一百萬,一個月就是上千萬。」
蔣碩說到這裡,自己都愣了一下,又低頭按了一遍計算器,確認沒按錯。
「白總,我也沒想到一個支付通道的切換,能直接把利潤率拉高這麼多。」蔣碩把計算器揣回兜里,抹了把臉上的汗,「而且這還只是第一天,大部分用戶還不知道可以發簡訊充值。等前台的引導全面鋪開,聲訊台的流量會繼續往移動夢網遷移,過路費還會進一步降低。保守估計,一周之內,移動夢網通道的流水占比會超過百分之八十。」
白宇航把報表放下,靠在椅背上。
「稅務談得怎麼樣?」
「啊,昨天下午去的,跟專管員聊了一個多小時。」蔣碩提到這事精神又抖擻了幾分,「我把咱們的業務模式和流水結構給他完完整整講了一遍,增值電信服務的稅率適用、代收代付的帳務處理、跟移動的分成結算方式,全對齊了。專管員說他幹了十幾年,頭一回見網際網路公司主動上門梳理稅務的。」
「該交的稅一分不少。」白宇航說。
「嗯,好的。」蔣碩點頭,「我已經把昨天的流水按新的通道比例做了分錄,今天下午就能出完整的日報表。對了白總,還有個事,」
蔣碩壓低了聲音,往門口瞄了一眼。
「按現在這個速度,咱們帳上的現金儲備會以一個非常恐怖的速度堆積。我粗算了一下,如果日均流水穩定在五百萬以上,刨去伺服器成本、人員工資、通道費和稅費,月淨利潤輕鬆過八千萬。白總,這錢光趴在銀行活期帳戶上太浪費了,我在中華創業基金學過,要不要提前考慮一下資金配置的事?」
白宇航端起紫砂杯喝了口茶。
「不急。先讓錢在帳上多躺幾天,後面有大的要花。」
蔣碩雖然不知道白宇航說的「大的」是什麼,但以他對白宇航的了解,這位老闆嘴裡蹦出來的每一個計劃,最後都會變成實實在在的數字。
「行,我先回去做報表了。」蔣碩站起來,走到門口又轉回頭,「白總,昨晚技術部的兄弟們通宵沒睡,今天中午能不能批個經費,我去樓下給他們訂頓好的?」
「找焦哥走行政預算,別太摳。」
「得嘞!」蔣碩樂顛顛地出去了,路過技術部的時候,看見張健還縮在椅子裡打鼾,嘴角掛著一條可疑的亮線,手邊扔著一個空的泡麵桶。
蔣碩難得地沒有嫌棄他,反而小心地繞了過去,生怕把這幫一夜沒睡的功臣吵醒。
白宇航從CE0辦公室出來,手裡捏著蔣碩剛送來的報表,走到辦公區正中間站定。
「都停一下。」
鍵盤聲稀稀拉拉地停了。
張健從椅子裡直起身,嘴角還掛著剛才打鼾留下的口水印子,用袖子一抹。
王小川推了推歪在鼻樑上的黑框眼鏡,宛良皓探出腦袋,手裡還攥著根沒啃完的火腿腸。
白宇航把報表往最近的一張桌子上一拍。
「移動夢網上線首日,全渠道流水五百一十五萬。」
辦公區安靜了整整三秒。
張健第一個反應過來,椅子往後一蹬,輪子在地板上發出一聲尖嘯:「多少?!」
「五百一十五萬。人民幣。一天。」白宇航把數字掰開了重複了一遍。
𝚃𝚆看書📕𝚜𝚑𝚞.𝚝𝚠
宛良皓張著嘴愣了兩秒,操著東北話蹦出一句:「我滴個親媽呀!芝麻開花節節高啊!
「,辦公區徹底炸了鍋。
技術部幾個通宵沒睡的程式設計師從工位上彈起來,有的拍桌子,有的直接原地蹦,一個剛睡醒的小伙子沒搞清楚狀況,跟著旁邊的人一起嗷嗷叫,叫完了扯著同事的袖子問「怎麼了怎麼了」。
蔣碩站在財務室門口,雙手抱著胳膊,臉上的表情介於得意和缺氧之間。
這數字他剛才對著計算器按了五遍,每一遍出來的結果都一樣,但每一遍都覺得不太真實。
張健擠到報表前面,腦袋湊上去看了兩眼,又退後一步,又湊上去看了一眼。
「白總,這日流水要是穩住,一個月就是一個多億嗎?」
「毛收入有可能。」蔣碩在旁邊糾正,「扣掉通道費和運營成本,淨利潤也有六千萬。」
張健轉頭看著蔣碩,頭一回沒嫌他囉嗦:「碩,你再說一遍。」
「月淨利潤可能六千萬,你耳朵沒毛病吧。」
張健仰頭對著天花板吼了一嗓子,聲音大得整個辦公區都愣了一下子。
宛良皓拍著大腿在咋呼:「一天五百多萬!我新設計的殺馬特豹紋外套貢獻了多少?
你們誰查查!」
旁邊劉志頭也不抬地回了一句:「良皓,你說的衣服昨天賣了一萬四千多套,你自己算吧。」
宛良皓掰著手指頭算了三秒,沒算明白,但不妨礙他樂得直拍桌子。
王小川坐在角落的工位上,看著眼前這幫人鬧騰,嘴角忍不住往上翹。
他昨天上午才從搜狐跑出來,之前看的是佛光狗、毒雞腿、辦公室政治。
來啟航不到二十四小時,現在看到的是單日五百萬的流水和一群通宵寫代碼的瘋子。
白宇航等辦公區的動靜小了一點,端起紫砂杯喝了口茶,開口了。
「高興完了沒有?說三件事。」
所有人安靜下來,齊刷刷看著他。
「第一件。」白宇航豎起一根手指,「從今天起,啟航的稅務,一分錢都不許少交。
什麼合理避稅、什麼籌劃節稅,統統不許搞。蔣碩,你跟稅務專管員該怎麼對就怎麼對,帳目清清爽爽,經得住任何人來查。」
蔣碩愣了一下。以他的專業素養,合理避稅本身合法合規,能省下來的錢不是小數目。
「第二件。」白宇航豎起第二根手指,看向張健,「伺服器擴容。預算不封頂,你要多少台買多少台。現在這個流水只是起步,後面量還會翻著跟頭往上漲。別等到伺服器扛不住了再來找我,你今天就列個採購清單,帶寬、存儲、備份,全拉滿。」
張健啪地一個立正:「白總,你說這話我可當真了啊。IDC機房賣伺服器的老闆,今天得過個肥年。」
「隨便買。」
張健眼睛都亮了,轉頭沖技術部喊:「兄弟們聽見沒?白總說了隨便買!誰給我列個單子出來,要最新的型號,二手的雜牌的就別拿來糊弄我了!」
「第三件。」白宇航放下茶杯,掃了一圈在場所有人,「本月全員發放三個月工資,算特別獎金。技術部、遊戲部通宵趕工的,另外再加三個月。」
辦公區沉默了一瞬。
然後徹底瘋了。
張健第一個帶頭鼓掌,鼓得巴掌都紅了。
宛良皓扯著嗓子喊「白總萬歲」,被旁邊的人嫌吵捂了嘴,又掙開繼續喊。
幾個年輕的程式設計師互相摟著肩膀,跟贏了世界盃似的原地轉圈。
蔣碩站在財務室門口,嘴上沒說什麼,但默默在心裡算了一遍發完獎金之後公司帳上剩多少錢算完之後,他長長地呼了口氣。
多得花不完。
焦利偉從行政區走過來,手裡還拿著幾張報銷單,看見辦公區這陣仗,一臉莫名其妙:「怎麼了這是,中午加菜了?」
張健摟著他的肩膀,樂得嘴都合不上:「焦哥,不是加菜,是發財了!六個月工資的獎金!你趕緊回去算算你能拿多少!」
焦利偉愣了兩秒,低頭看了看手裡的報銷單,又抬頭看了看白宇航,然後默默地把報銷單揣回兜里—這點小錢,現在提出來怪丟人的。
辦公區持續爆發出掀翻屋頂的歡呼聲。
張小龍靠在自己辦公室的門框上,雙手插在兜里,嘴角掛著一抹淡淡的笑。
他不是愛湊熱鬧的人,但看著這幫年輕人鬧騰,眼底的欣慰藏不住。
蘇沐清站在隔壁的辦公室門口,手裡還捏著一支筆,剛才正在核算版權採購的預估成本。
聽見外面炸了鍋,她探出頭來,目光越過人群,準確地落在白宇航身上。
白宇航正端著紫砂杯往回走,感覺到有道視線,偏頭看了她一眼,兩人隔著半個辦公區對視了不到一秒,蘇沐清彎了彎嘴角,低頭回桌前繼續算她的帳。
張健頂著一腦袋雞窩頭從工位上躥起來,椅子被他蹬得滑出去兩米遠,差點撞翻旁邊的垃圾桶。
他三步並作兩步衝到宛良皓面前,兩人啪地一聲擊了個響亮的掌。
「良皓!五百萬!一天!」
「我聽見了!我又不聾!」宛良皓操著東北話嗷嗷叫,「我做的殺馬特豹紋外套一天賣了一萬四千套!一萬四千套啊!」
「你就惦記破豹紋!」
兩人笑罵著推搡了兩下,一起轉頭看見張小龍站在辦公室門口,對視一眼,同時沖了過去。
張健先到一步,一把摟住張小龍的肩膀,宛良皓緊跟著從另一邊撲上來,三個人撞在一起,張小龍被擠得往後退了半步,扶了下門框才站穩。
「AIlen總!我們賺錢了!」張健激動得嗓門都劈了。
張小龍被兩個人夾在中間,眼鏡都擠歪了,伸手扶正,難得地笑出了聲:「別勒我脖子,松點。」
「Allen總你昨晚幫我們review的網關緩衝邏輯,關鍵時刻頂大用了!」張健鬆開手,拍著張小龍的胳膊,「沒你把關,我們今早不敢放量跑。」
張小龍擺了擺手:「是新來的王小川加的消息隊列設計得好,我只是幫著看了看邊界條件。」
喧鬧聲一浪接一浪,整個辦公區像過年一樣。
有人在拿相機互相拍照,有人在打電話給家裡報喜,焦利偉不知道從哪翻出一掛鞭炮形狀的裝飾彩帶,正琢磨往天花板上掛。
唯獨最角落的一盞檯燈底下,安安靜靜的。
王小川坐在工位上,周圍的歡呼聲好像隔了一層玻璃。
他的眼睛布滿血絲,黑框眼鏡滑到了鼻尖上,也沒顧上推。
面前的屏幕上還亮著密密麻麻的代碼,旁邊攤著一本翻卷了邊的筆記本,上面的手寫字跡從工整到潦草,越往後越像鬼畫符一是凌晨三點以後寫的,困到手抖,但腦子停不下來。
移動接口的事,他昨晚跟張健配合著收了尾。
消息隊列的峰值壓力測試跑通之後,按理說他該去休息了。
張健也催過他,說「川兒你眼睛都紅成兔子了,趕緊眯一會兒」。
他沒去。
因為白宇航給他看的幾張架構圖,像一根刺一樣扎在腦子裡,拔不出來。
微服務網關、容器編排、分布式搜尋引擎底層邏輯這些他在MIT和斯坦福的公開論文裡翻遍了都沒找到的概念,白宇航隨手畫在筆記本上,像是信手拈來。
他當時問白宇航從哪看來的,白宇航說「自己琢磨的」。
自己琢磨的。
王小川不怎麼信,但他也找不到別的解釋。
他唯一能做的,就是順著白宇航給的幾根線頭,往下拽。
凌晨兩點,移動接口徹底穩定之後,他打開了一個新的工程文件。
白宇航昨晚在辦公室里跟他聊搜尋引擎的時候,提到了三個核心方向:中文分詞算法、微服務架構與分布式搜尋引擎底層邏輯、網頁粒度分析算法。
白宇航沒有徹底展開講,只是點了一些設計思路,還給他了幾份邏輯流程圖,像是在黑暗裡給他亮了三盞燈。
但就這三盞燈,夠了。
中文分詞這個方向,他在清華的時候就琢磨過。
中文不像英文,詞和詞之間沒有天然的空格分隔,「研究生命的起源」到底是「研究/生命/的/起源」還是「研究生/命/的/起源」,機器分不清楚。
白宇航提到了一個思路—基於統計語言模型的分詞方法,用大規模語料庫訓練詞頻概率,再結合上下文語境做動態切分。
這個方向王小川以前隱約想過,但從沒有人這麼清晰地把路徑指出來。
他從凌晨兩點寫到早上四點,兩個小時,硬生生把中文分詞模塊的初步算法框架搭了出來。
不是完整的產品,只是一個能跑通基本測試用例的原型,但核心的概率計算模型和詞典索引結構已經成型了。
網頁粒度分析算法,更讓他興奮。
白宇航說的是搜尋引擎的爬蟲抓取網頁之後,不能把整個頁面當成一坨數據來處理,要像外科手術一樣,把頁面里的標題、正文、導航欄、廣告位、用戶評論逐一拆解,給每個區塊賦予不同的權重。
這個思路他以前完全沒想過,但一聽就覺得對用戶搜「劉德華」,搜尋引擎應該優先返回正文裡提到劉德華的頁面和文字信息,而不是側邊欄廣告裡寫著「劉德華同款墨鏡」的垃圾頁面。
他把這個算法的初步邏輯已經理解透了,靈光一閃之後,他一刻也不敢停下,他要立刻把思路轉化成代碼,用了三個多小時做了一個本地運行的測試樣例,雖然還很粗糙,但在代碼編輯器里運行的爬蟲程序的網頁解析模塊,已經能不報錯地跑起來了,能把一個HTML頁面拆成七八個語義區塊,準確率大概在兩成左右。
兩成。
對於一夜之間從零開始的原型來說,已經是個讓人頭皮發麻的數字了。
此刻王小川手裡攥著幾張A4紙,是他凌晨在電腦里復盤時,列印出來的。
上面是白宇航昨晚口述的幾點設計思路,他一字不落地記了下來,又在旁邊補了自己的推演和注釋,密密麻麻寫滿了正反兩面。
紙角已經被他的手汗洇出了一圈水印。
張健鬧完了,擦著額頭上的汗往回走,路過王小川工位的時候,瞄了一眼他的屏幕,腳步猛地頓住了。
「川兒,你這寫的什麼?」
張健湊過去,眯著小眼睛看了幾行代碼,表情從好奇變成困惑,又從困惑變成震驚。
「這是————爬蟲?你什麼時候寫的爬蟲?」
「昨晚。」王小川的聲音啞得厲害,像是嗓子裡塞了砂紙。
「昨晚?」張健瞪大了眼睛,「昨晚你不是跟我一起搞移動接口嗎?」
「接口穩了之後寫的。」
張健看了看屏幕上的時間戳,最早的一條提交記錄是凌晨兩點十七分,最新的一條是早上七點零三分。
中間沒有任何間斷,五個小時,連續提交了四十多次。
「你一宿沒睡?」
王小川沒回答這個問題,而是把手裡的A4紙遞給張健。
「張哥,你幫我看看這個分詞算法的概率模型,我總覺得在處理長句的時候,動態規劃的狀態轉移方程有個地方不太對,但我盯了兩個小時沒盯出來。」
張健接過紙,翻了兩頁,表情逐漸變得複雜。
他大概看得懂上面寫的東西,但他也看得出來,這套東西的複雜度和前瞻性,已經超出了他作為技術總監日常處理的業務範疇。
「川兒。」張健把紙還給他,拍了拍他的肩膀,語氣裡帶著一種老大哥式的服氣,「你這腦子,是真不一樣。」
王小川把紙接回來,重新疊好,小心地夾進筆記本里。
他抬頭看了一眼CEO辦公室的方向,白宇航已經走回去了,門半掩著。
真正不一樣的,是白總吧。
他推了推眼鏡,把鍵盤拉回來,十根手指重新搭上去。
屏幕上的光映在鏡片上,代碼一行一行地往下滾。
周圍的歡呼聲漸漸遠了,他的世界裡只剩下鍵盤的咔嗒聲和屏幕上跳動的字符。
白宇航給他點了三盞燈。
他要沿著這三盞燈,把整條路走出來。
「按昨天五百一十五萬的流水,聲訊台通道的一百六十六萬扣掉將近一半的過路費,到手大概九十萬出頭。移動夢網通道的三百四十九萬,只扣百分之十五,到手接近三百萬。」蔣碩把計算器從兜里掏出來啪啪按了兩下,轉過來給白宇航看,「合計到手利潤三百九十萬。要是放在以前全走聲訊台,同樣五百一十萬的流水,過路費扣完到手只有二百八十多萬。一天多賺一百萬,一個月就是上千萬。」
蔣碩說到這裡,自己都愣了一下,又低頭按了一遍計算器,確認沒按錯。
「白總,我也沒想到一個支付通道的切換,能直接把利潤率拉高這麼多。」蔣碩把計算器揣回兜里,抹了把臉上的汗,「而且這還只是第一天,大部分用戶還不知道可以發簡訊充值。等前台的引導全面鋪開,聲訊台的流量會繼續往移動夢網遷移,過路費還會進一步降低。保守估計,一周之內,移動夢網通道的流水占比會超過百分之八十。」
白宇航把報表放下,靠在椅背上。
「稅務談得怎麼樣?」
「啊,昨天下午去的,跟專管員聊了一個多小時。」蔣碩提到這事精神又抖擻了幾分,「我把咱們的業務模式和流水結構給他完完整整講了一遍,增值電信服務的稅率適用、代收代付的帳務處理、跟移動的分成結算方式,全對齊了。專管員說他幹了十幾年,頭一回見網際網路公司主動上門梳理稅務的。」
「該交的稅一分不少。」白宇航說。
「嗯,好的。」蔣碩點頭,「我已經把昨天的流水按新的通道比例做了分錄,今天下午就能出完整的日報表。對了白總,還有個事,」
蔣碩壓低了聲音,往門口瞄了一眼。
「按現在這個速度,咱們帳上的現金儲備會以一個非常恐怖的速度堆積。我粗算了一下,如果日均流水穩定在五百萬以上,刨去伺服器成本、人員工資、通道費和稅費,月淨利潤輕鬆過八千萬。白總,這錢光趴在銀行活期帳戶上太浪費了,我在中華創業基金學過,要不要提前考慮一下資金配置的事?」
白宇航端起紫砂杯喝了口茶。
「不急。先讓錢在帳上多躺幾天,後面有大的要花。」
蔣碩雖然不知道白宇航說的「大的」是什麼,但以他對白宇航的了解,這位老闆嘴裡蹦出來的每一個計劃,最後都會變成實實在在的數字。
「行,我先回去做報表了。」蔣碩站起來,走到門口又轉回頭,「白總,昨晚技術部的兄弟們通宵沒睡,今天中午能不能批個經費,我去樓下給他們訂頓好的?」
「找焦哥走行政預算,別太摳。」
「得嘞!」蔣碩樂顛顛地出去了,路過技術部的時候,看見張健還縮在椅子裡打鼾,嘴角掛著一條可疑的亮線,手邊扔著一個空的泡麵桶。
蔣碩難得地沒有嫌棄他,反而小心地繞了過去,生怕把這幫一夜沒睡的功臣吵醒。
白宇航從CE0辦公室出來,手裡捏著蔣碩剛送來的報表,走到辦公區正中間站定。
「都停一下。」
鍵盤聲稀稀拉拉地停了。
張健從椅子裡直起身,嘴角還掛著剛才打鼾留下的口水印子,用袖子一抹。
王小川推了推歪在鼻樑上的黑框眼鏡,宛良皓探出腦袋,手裡還攥著根沒啃完的火腿腸。
白宇航把報表往最近的一張桌子上一拍。
「移動夢網上線首日,全渠道流水五百一十五萬。」
辦公區安靜了整整三秒。
張健第一個反應過來,椅子往後一蹬,輪子在地板上發出一聲尖嘯:「多少?!」
「五百一十五萬。人民幣。一天。」白宇航把數字掰開了重複了一遍。
𝚃𝚆看書📕𝚜𝚑𝚞.𝚝𝚠
宛良皓張著嘴愣了兩秒,操著東北話蹦出一句:「我滴個親媽呀!芝麻開花節節高啊!
「,辦公區徹底炸了鍋。
技術部幾個通宵沒睡的程式設計師從工位上彈起來,有的拍桌子,有的直接原地蹦,一個剛睡醒的小伙子沒搞清楚狀況,跟著旁邊的人一起嗷嗷叫,叫完了扯著同事的袖子問「怎麼了怎麼了」。
蔣碩站在財務室門口,雙手抱著胳膊,臉上的表情介於得意和缺氧之間。
這數字他剛才對著計算器按了五遍,每一遍出來的結果都一樣,但每一遍都覺得不太真實。
張健擠到報表前面,腦袋湊上去看了兩眼,又退後一步,又湊上去看了一眼。
「白總,這日流水要是穩住,一個月就是一個多億嗎?」
「毛收入有可能。」蔣碩在旁邊糾正,「扣掉通道費和運營成本,淨利潤也有六千萬。」
張健轉頭看著蔣碩,頭一回沒嫌他囉嗦:「碩,你再說一遍。」
「月淨利潤可能六千萬,你耳朵沒毛病吧。」
張健仰頭對著天花板吼了一嗓子,聲音大得整個辦公區都愣了一下子。
宛良皓拍著大腿在咋呼:「一天五百多萬!我新設計的殺馬特豹紋外套貢獻了多少?
你們誰查查!」
旁邊劉志頭也不抬地回了一句:「良皓,你說的衣服昨天賣了一萬四千多套,你自己算吧。」
宛良皓掰著手指頭算了三秒,沒算明白,但不妨礙他樂得直拍桌子。
王小川坐在角落的工位上,看著眼前這幫人鬧騰,嘴角忍不住往上翹。
他昨天上午才從搜狐跑出來,之前看的是佛光狗、毒雞腿、辦公室政治。
來啟航不到二十四小時,現在看到的是單日五百萬的流水和一群通宵寫代碼的瘋子。
白宇航等辦公區的動靜小了一點,端起紫砂杯喝了口茶,開口了。
「高興完了沒有?說三件事。」
所有人安靜下來,齊刷刷看著他。
「第一件。」白宇航豎起一根手指,「從今天起,啟航的稅務,一分錢都不許少交。
什麼合理避稅、什麼籌劃節稅,統統不許搞。蔣碩,你跟稅務專管員該怎麼對就怎麼對,帳目清清爽爽,經得住任何人來查。」
蔣碩愣了一下。以他的專業素養,合理避稅本身合法合規,能省下來的錢不是小數目。
「第二件。」白宇航豎起第二根手指,看向張健,「伺服器擴容。預算不封頂,你要多少台買多少台。現在這個流水只是起步,後面量還會翻著跟頭往上漲。別等到伺服器扛不住了再來找我,你今天就列個採購清單,帶寬、存儲、備份,全拉滿。」
張健啪地一個立正:「白總,你說這話我可當真了啊。IDC機房賣伺服器的老闆,今天得過個肥年。」
「隨便買。」
張健眼睛都亮了,轉頭沖技術部喊:「兄弟們聽見沒?白總說了隨便買!誰給我列個單子出來,要最新的型號,二手的雜牌的就別拿來糊弄我了!」
「第三件。」白宇航放下茶杯,掃了一圈在場所有人,「本月全員發放三個月工資,算特別獎金。技術部、遊戲部通宵趕工的,另外再加三個月。」
辦公區沉默了一瞬。
然後徹底瘋了。
張健第一個帶頭鼓掌,鼓得巴掌都紅了。
宛良皓扯著嗓子喊「白總萬歲」,被旁邊的人嫌吵捂了嘴,又掙開繼續喊。
幾個年輕的程式設計師互相摟著肩膀,跟贏了世界盃似的原地轉圈。
蔣碩站在財務室門口,嘴上沒說什麼,但默默在心裡算了一遍發完獎金之後公司帳上剩多少錢算完之後,他長長地呼了口氣。
多得花不完。
焦利偉從行政區走過來,手裡還拿著幾張報銷單,看見辦公區這陣仗,一臉莫名其妙:「怎麼了這是,中午加菜了?」
張健摟著他的肩膀,樂得嘴都合不上:「焦哥,不是加菜,是發財了!六個月工資的獎金!你趕緊回去算算你能拿多少!」
焦利偉愣了兩秒,低頭看了看手裡的報銷單,又抬頭看了看白宇航,然後默默地把報銷單揣回兜里—這點小錢,現在提出來怪丟人的。
辦公區持續爆發出掀翻屋頂的歡呼聲。
張小龍靠在自己辦公室的門框上,雙手插在兜里,嘴角掛著一抹淡淡的笑。
他不是愛湊熱鬧的人,但看著這幫年輕人鬧騰,眼底的欣慰藏不住。
蘇沐清站在隔壁的辦公室門口,手裡還捏著一支筆,剛才正在核算版權採購的預估成本。
聽見外面炸了鍋,她探出頭來,目光越過人群,準確地落在白宇航身上。
白宇航正端著紫砂杯往回走,感覺到有道視線,偏頭看了她一眼,兩人隔著半個辦公區對視了不到一秒,蘇沐清彎了彎嘴角,低頭回桌前繼續算她的帳。
張健頂著一腦袋雞窩頭從工位上躥起來,椅子被他蹬得滑出去兩米遠,差點撞翻旁邊的垃圾桶。
他三步並作兩步衝到宛良皓面前,兩人啪地一聲擊了個響亮的掌。
「良皓!五百萬!一天!」
「我聽見了!我又不聾!」宛良皓操著東北話嗷嗷叫,「我做的殺馬特豹紋外套一天賣了一萬四千套!一萬四千套啊!」
「你就惦記破豹紋!」
兩人笑罵著推搡了兩下,一起轉頭看見張小龍站在辦公室門口,對視一眼,同時沖了過去。
張健先到一步,一把摟住張小龍的肩膀,宛良皓緊跟著從另一邊撲上來,三個人撞在一起,張小龍被擠得往後退了半步,扶了下門框才站穩。
「AIlen總!我們賺錢了!」張健激動得嗓門都劈了。
張小龍被兩個人夾在中間,眼鏡都擠歪了,伸手扶正,難得地笑出了聲:「別勒我脖子,松點。」
「Allen總你昨晚幫我們review的網關緩衝邏輯,關鍵時刻頂大用了!」張健鬆開手,拍著張小龍的胳膊,「沒你把關,我們今早不敢放量跑。」
張小龍擺了擺手:「是新來的王小川加的消息隊列設計得好,我只是幫著看了看邊界條件。」
喧鬧聲一浪接一浪,整個辦公區像過年一樣。
有人在拿相機互相拍照,有人在打電話給家裡報喜,焦利偉不知道從哪翻出一掛鞭炮形狀的裝飾彩帶,正琢磨往天花板上掛。
唯獨最角落的一盞檯燈底下,安安靜靜的。
王小川坐在工位上,周圍的歡呼聲好像隔了一層玻璃。
他的眼睛布滿血絲,黑框眼鏡滑到了鼻尖上,也沒顧上推。
面前的屏幕上還亮著密密麻麻的代碼,旁邊攤著一本翻卷了邊的筆記本,上面的手寫字跡從工整到潦草,越往後越像鬼畫符一是凌晨三點以後寫的,困到手抖,但腦子停不下來。
移動接口的事,他昨晚跟張健配合著收了尾。
消息隊列的峰值壓力測試跑通之後,按理說他該去休息了。
張健也催過他,說「川兒你眼睛都紅成兔子了,趕緊眯一會兒」。
他沒去。
因為白宇航給他看的幾張架構圖,像一根刺一樣扎在腦子裡,拔不出來。
微服務網關、容器編排、分布式搜尋引擎底層邏輯這些他在MIT和斯坦福的公開論文裡翻遍了都沒找到的概念,白宇航隨手畫在筆記本上,像是信手拈來。
他當時問白宇航從哪看來的,白宇航說「自己琢磨的」。
自己琢磨的。
王小川不怎麼信,但他也找不到別的解釋。
他唯一能做的,就是順著白宇航給的幾根線頭,往下拽。
凌晨兩點,移動接口徹底穩定之後,他打開了一個新的工程文件。
白宇航昨晚在辦公室里跟他聊搜尋引擎的時候,提到了三個核心方向:中文分詞算法、微服務架構與分布式搜尋引擎底層邏輯、網頁粒度分析算法。
白宇航沒有徹底展開講,只是點了一些設計思路,還給他了幾份邏輯流程圖,像是在黑暗裡給他亮了三盞燈。
但就這三盞燈,夠了。
中文分詞這個方向,他在清華的時候就琢磨過。
中文不像英文,詞和詞之間沒有天然的空格分隔,「研究生命的起源」到底是「研究/生命/的/起源」還是「研究生/命/的/起源」,機器分不清楚。
白宇航提到了一個思路—基於統計語言模型的分詞方法,用大規模語料庫訓練詞頻概率,再結合上下文語境做動態切分。
這個方向王小川以前隱約想過,但從沒有人這麼清晰地把路徑指出來。
他從凌晨兩點寫到早上四點,兩個小時,硬生生把中文分詞模塊的初步算法框架搭了出來。
不是完整的產品,只是一個能跑通基本測試用例的原型,但核心的概率計算模型和詞典索引結構已經成型了。
網頁粒度分析算法,更讓他興奮。
白宇航說的是搜尋引擎的爬蟲抓取網頁之後,不能把整個頁面當成一坨數據來處理,要像外科手術一樣,把頁面里的標題、正文、導航欄、廣告位、用戶評論逐一拆解,給每個區塊賦予不同的權重。
這個思路他以前完全沒想過,但一聽就覺得對用戶搜「劉德華」,搜尋引擎應該優先返回正文裡提到劉德華的頁面和文字信息,而不是側邊欄廣告裡寫著「劉德華同款墨鏡」的垃圾頁面。
他把這個算法的初步邏輯已經理解透了,靈光一閃之後,他一刻也不敢停下,他要立刻把思路轉化成代碼,用了三個多小時做了一個本地運行的測試樣例,雖然還很粗糙,但在代碼編輯器里運行的爬蟲程序的網頁解析模塊,已經能不報錯地跑起來了,能把一個HTML頁面拆成七八個語義區塊,準確率大概在兩成左右。
兩成。
對於一夜之間從零開始的原型來說,已經是個讓人頭皮發麻的數字了。
此刻王小川手裡攥著幾張A4紙,是他凌晨在電腦里復盤時,列印出來的。
上面是白宇航昨晚口述的幾點設計思路,他一字不落地記了下來,又在旁邊補了自己的推演和注釋,密密麻麻寫滿了正反兩面。
紙角已經被他的手汗洇出了一圈水印。
張健鬧完了,擦著額頭上的汗往回走,路過王小川工位的時候,瞄了一眼他的屏幕,腳步猛地頓住了。
「川兒,你這寫的什麼?」
張健湊過去,眯著小眼睛看了幾行代碼,表情從好奇變成困惑,又從困惑變成震驚。
「這是————爬蟲?你什麼時候寫的爬蟲?」
「昨晚。」王小川的聲音啞得厲害,像是嗓子裡塞了砂紙。
「昨晚?」張健瞪大了眼睛,「昨晚你不是跟我一起搞移動接口嗎?」
「接口穩了之後寫的。」
張健看了看屏幕上的時間戳,最早的一條提交記錄是凌晨兩點十七分,最新的一條是早上七點零三分。
中間沒有任何間斷,五個小時,連續提交了四十多次。
「你一宿沒睡?」
王小川沒回答這個問題,而是把手裡的A4紙遞給張健。
「張哥,你幫我看看這個分詞算法的概率模型,我總覺得在處理長句的時候,動態規劃的狀態轉移方程有個地方不太對,但我盯了兩個小時沒盯出來。」
張健接過紙,翻了兩頁,表情逐漸變得複雜。
他大概看得懂上面寫的東西,但他也看得出來,這套東西的複雜度和前瞻性,已經超出了他作為技術總監日常處理的業務範疇。
「川兒。」張健把紙還給他,拍了拍他的肩膀,語氣裡帶著一種老大哥式的服氣,「你這腦子,是真不一樣。」
王小川把紙接回來,重新疊好,小心地夾進筆記本里。
他抬頭看了一眼CEO辦公室的方向,白宇航已經走回去了,門半掩著。
真正不一樣的,是白總吧。
他推了推眼鏡,把鍵盤拉回來,十根手指重新搭上去。
屏幕上的光映在鏡片上,代碼一行一行地往下滾。
周圍的歡呼聲漸漸遠了,他的世界裡只剩下鍵盤的咔嗒聲和屏幕上跳動的字符。
白宇航給他點了三盞燈。
他要沿著這三盞燈,把整條路走出來。