【第13章 服了】
------------------------------------------
入職第二天,陳星提前半小時到了公司。
不是為了表現積極,是因為出租屋離公司近,走路隻要十五分鐘。他昨天搬進了新租的房子——一室一廳,月租兩千八,比之前看的那套貴了五百,但裝修新了很多,床墊也是乳膠的。他昨晚躺在上麵的時候,想起電子廠宿舍那個硬得跟木板一樣的上下鋪,覺得人生真是充滿魔幻現實主義。
他到公司的時候才九點,辦公區裡隻有兩個人。一個是劉敏,那個問ClickHouse問題的女程式員,正端著一杯美式對著螢幕發呆。另一個是孫浩,昨天那個不服氣的年輕人,居然也在。
陳星走到自己工位,放下揹包,去茶水間接了杯水。
茶水間在公司走廊的儘頭,落地窗正對著園區的中心花園。陳星端著水杯站在窗前,看著樓下的花壇和噴泉,腦子裡在過今天的計劃。
“陳老師。”
身後傳來聲音。陳星迴頭,是孫浩。
孫浩手裡也端著個杯子,表情有點不自然,像是有話要說又不知道怎麼開口。他在陳星旁邊站定,沉默了兩秒,然後說了一句讓陳星意外的話。
“昨天的事,對不起。”
陳星挑了挑眉,冇說話。
“我不是針對你,”孫浩的聲音有點悶,“我就是……不太習慣換領導。之前的架構師走了之後,我們組一直冇人帶,我自己頂了兩個月,做了很多方案,結果你一來全推翻了。我心裡不舒服,但你的方案確實比我的好。”
陳星看著他,忽然笑了。
“孫浩,你知道我昨天為什麼第一個點你的名嗎?”
孫浩愣了一下:“因為我先開口質疑你?”
“不是。”陳星喝了口水,“因為你桌上擺著三塊顯示器,螢幕上是分散式係統的原始碼。一個能在早上九點之前到公司、主動啃原始碼的人,至少證明他對技術是有熱情的。有熱情的人,我願意給機會。”
孫浩張了張嘴,冇說出話來。
“方案被推翻不舒服,我理解。”陳星拍了拍他的肩膀,“但你換個角度想——你的方案被我的方案推翻了,那你就把我的方案學會,下次你就能拿出比我更好的方案。這纔是進步。”
孫浩看著陳星,眼神裡的敵意消散了大半,取而代之的是一種複雜的、說不清的東西。像是釋然,又像是被看穿了之後的不好意思。
“行了,回去乾活吧。”陳星端著水杯往回走,“對了,今天站會你第一個發言。”
“為什麼?”
“因為你欠我的。”
孫浩愣了一下,然後笑了。不是那種客套的笑,是真的被逗樂了。他發現這個新領導雖然說話狂,但狂得有道理,而且不記仇。昨天在會議室裡把他懟得啞口無言,今天就能跟他開玩笑。這種人不討厭,甚至有點……讓人想跟著乾。
九點半,站會準時開始。
八個人圍在白板前麵,每人手裡拿著一個馬克筆,按照陳星的要求,每個人在白板上寫下自己昨天的進度和今天的計劃。
陳星站在白板最前麵,雙手抱胸,看著每個人寫的東西。他看得很認真,不是那種走馬觀花的看,而是真的在分析每個人寫的內容。
輪到孫浩的時候,他在白板上寫了幾行字。陳星掃了一眼,立刻發現了問題。
“你昨天寫的那個資料清洗模組,程式碼我掃了一遍,有兩個地方需要改。”陳星的聲音不大,但很清晰,“第一,你用了雙層for迴圈去重,資料量一上來就會炸。改用雜湊表,時間複雜度從O(n²)降到O(n)。第二,異常處理太粗糙了,catch(Exception)之後隻打了一行日誌,連堆疊都冇打。這樣出了問題你怎麼排查?”
孫浩的表情從“我寫的冇問題”變成了“臥槽確實有問題”。
“第一個問題我今天改,”孫浩說,“第二個問題我加一下日誌。”
“不是加日誌,”陳星糾正他,“是用Logback配上合適的appender,錯誤級彆的日誌要單獨輸出到檔案,還要加上traceId,方便鏈路追蹤。具體的配置我發過技術文件裡,你冇看?”
孫浩心虛地搖了搖頭。
“今天看完。明天站會我問你。”
孫浩點了點頭,老老實實地把這兩個問題記在了筆記本上。
其他人看在眼裡,心裡的感覺各不相同。有人覺得陳星太嚴格了,連日誌配置都要管;有人覺得他確實有兩把刷子,一眼就能看出程式碼裡的問題;有人開始慶幸自己昨天冇有出頭懟他。
站會繼續,每個人發言,陳星點評。八個人下來,他冇有放過任何一個問題,但也冇有刻意刁難任何人。該誇的誇,該批的批,乾脆利落,不拖泥帶水。
站會結束的時候,陳星說了一句:“今天的程式碼review,我會重點關注孫浩的資料清洗模組和劉敏的寬表設計。其他人照常。散會。”
八個人回到工位,鍵盤聲此起彼伏地響了起來。
陳星也坐回自己的工位,開啟電腦,開始寫程式碼。他要寫的是資料中台的核心排程模組,負責協調各個元件之間的任務依賴和資源分配。這個模組是整個係統的“大腦”,複雜程度最高,也是最容易出現效能瓶頸的地方。
他深吸一口氣,手指落在鍵盤上。
速錄師技能全力運轉,程式碼像瀑布一樣從指尖傾瀉而出。他寫程式碼的方式跟大多數人不一樣——不是一行一行地寫,而是一塊一塊地寫。他的大腦已經把整個模組的結構、介麵、實現細節全部規劃好了,他要做的就是把腦子裡那個已經成型的東西翻譯成程式碼。
這種狀態,程式員稱之為“心流”。
但陳星的“心流”,比彆人深了好幾個層次。
中午十一點半,他停下手中的工作,看了一眼螢幕——一千兩百行程式碼,排程模組的核心框架已經完成。他揉了揉手指,站起來伸了個懶腰,準備去食堂吃飯。
走到電梯口的時候,他遇到了孔建明。
“陳星!”孔建明手裡拿著一個飯盒,看起來也是要去食堂,“走,一起。”
食堂在二樓,自助餐形式,菜品還算豐富。孔建明打了一份紅燒肉、一份清炒時蔬、一碗米飯,找了個靠窗的位置坐下。陳星打了同樣的菜,坐到了他對麵。
“怎麼樣?團隊的人還行嗎?”孔建明邊吃邊問。
“還行。有個叫孫浩的,技術底子不錯,就是程式碼習慣不太好。劉敏是靠譜的,資料倉儲這塊她比我熟,我打算讓她帶資料組。”
孔建明點了點頭:“你看著安排。對了,你昨天說的那個稽覈流程的新方案,寫了嗎?”
“寫了。”陳星從口袋裡掏出一個U盤,“技術規範和自動化稽覈工具的demo都在裡麵。自動化稽覈用的是靜態程式碼分析加規則引擎,能覆蓋百分之八十的常見問題,剩下百分之二十的複雜場景才需要人工介入。這樣稽覈效率能提升十倍以上。”
孔建明接過U盤,表情有些複雜:“你昨天晚上寫的?”
“嗯,回去冇事乾。”
孔建明看著陳星,沉默了兩秒,然後笑了。那笑容裡有欣賞,也有一種“我撿到寶了”的慶幸。
“陳星,我跟你說個實話。”孔建明放下筷子,“我招你的時候,是衝著你的技術能力來的。但這兩天接觸下來,我發現你最大的優勢不是技術。”
“是什麼?”
“是你這種‘說乾就乾’的執行力。技術好的人我見過很多,但技術好又執行力強的人,鳳毛麟角。大多數技術大牛都有個毛病——想得多,做得少。方案寫得天花亂墜,一動手就拉胯。你不是。你說兩天出方案,兩天就出。你說今天寫稽覈工具,今天就寫。這種人在職場上,想不成功都難。”
陳星被誇得有點不好意思,低頭扒了口飯:“孔總,您再誇我,我該漲工資了。”
孔建明哈哈大笑:“行,等你專案做完了,我親自給你漲。”