作者bergamont (希德嘉)
看板BB-Love
標題[自創] Refactoring 重構(三)
時間Thu Jan 29 13:31:13 2026
第 1.1章:除魅 (Demystification)
時間:告白後的隔天上午 09:00
Ken 整晚沒睡。他頂著兩個巨大的黑眼圈,像個等待處決的犯人一樣,準時坐進他的格子
間。他腦中預演了無數種災難場景:也許熊先生會把他調部門、熊先生會無視他、或是最
糟的——暗示他自己離職。
內線電話響了,「你進來一下。」熊先生在辦公室叫他。
Ken 推開門,心臟快要跳出喉嚨。熊先生招招手,拉過一張椅子,叫他坐到他身邊去看他
的電腦螢幕。Ken猶豫了一下,在熊先生身邊坐下,現在他們的距離怕是比昨天在車子裡
還近。
熊先生手裡端著保溫杯,電腦螢幕上是一行行密密麻麻的程式碼。他看起來跟平常沒有任
何不同,甚至連眼神都沒有一絲昨晚雨夜裡的波動。
Ken 整個人十分僵硬,雙手絞在一起。「熊哥,關於昨晚......」
「昨晚?」熊先生挑起一邊眉毛,語氣淡然,「昨晚下大雨,我載你回家。除此之外還有
什麼嗎?」
Ken 愣住了。Deleted。 他真的執行了刪除指令。
「沒......沒有了。」Ken 低下頭,被這冷淡的溫柔刺得眼眶一熱,心裡的巨石轟然
落地。
「好。」熊先生轉過螢幕,將鍵盤推給 Ken,「那我們來談正事。我有個Legacy Code(
陳年舊代碼)要交給你。」
Ken 湊近一看,那是公司系統最核心的數據庫連接模組。
「這是這套系統最底層的通訊協定。」熊先生指著螢幕上的代碼,「作者是我,十五年前
寫的。」
Ken 肅然起敬。這是「神」的作品。
「這段 Code 現在跑起來雖然沒問題,但在High Concurrency(高併發)的時候效能會掉
。」熊先生喝了一口水,語氣平靜地說出了一句讓 Ken 震驚的話,「這是我當年技術還
不成熟的時候寫的,裡面充滿了各種為了趕上線而寫的 Hard code 和糟糕的邏輯補丁。
簡直是一坨垃圾。」
「垃圾?」Ken 瞪大眼睛,不敢相信自己的耳朵。
「對,垃圾。」熊先生的語氣有種煽動的意味,「你的任務,就是把它重構。把你覺得不
合理、邏輯冗餘、變數命名很蠢的地方,全部修掉。」
「可是......這是你寫的......」
「所以我才叫你修。」熊先生身體微微前傾,盯著 Ken 的眼睛,意有所指地說,「Ken,
不要迷信權威。程式碼不會騙人,寫得爛就是爛,不管作者是誰。你也看到了,我寫的東
西並不完美,甚至充滿 Bug。」
Ken 看著螢幕上那些略顯笨拙的早期代碼,又看了看眼前這個坦承自己「充滿 Bug」的中
年男人。這個男人昨天告訴他,自己曾經「膽小又懦弱」,現在又把自己過去的不完美用
這種如此具體的方式展示給他。
「我要你在一週內,用你現在學到的新架構,把這個模組改寫。」熊先生敲了敲桌子,「
證明給我看,你的邏輯比我當年更好。做得到嗎?」
Ken 深吸了一口氣。這不是施捨,這是一份沈甸甸的戰帖,也是一份男人對男人的尊重。
他挺直了背脊,那種想哭的衝動消失了,取而代之的是工程師被激起的鬥志。
「做得到。」Ken 的聲音不再發抖。
「很好。」熊先生滿意地點點頭,把檔案權限開通給他,「去工作吧。還有,中午記得吃
飯,別像個傻瓜一樣餓肚子。」
第 1.2 章:地獄週 (Hell Week)
時間:告白後的第七天,週五下午 17:00
這一週,研發部的同事們都覺得 Ken瘋了。
他以前準時下班,這週卻直接睡在公司。他的桌上堆滿了提神飲料的空罐,原本愛乾淨的
他,一頭油膩,鬍渣長出來了也沒刮,整個人散發出一種生人勿近的臭味(既是物理上的
,也是精神上的)。同事不敢問他到底有沒有回去洗澡,又擔心他會不會喝太多提神飲料
把心臟喝爆。
因為是熊先生親自向他下的戰帖,他若不全力以赴,他就沒資格在熊先生面前行走了。為
了那個該死的 Legacy Code,他把以前大學教授教的演算法全部翻出來,甚至去圖書館借
了兩本關於底層通訊協定的磚頭書啃。到底這是一個失戀的復仇,還是一個純粹的挑戰,
Ken現在已經不在乎了。
「這行糟糕的Logic 是誰寫的?怎麼會有這種無窮迴圈的隱患?哦,是熊先生寫的。刪掉
!重寫!」
這種「殺死偶像」的過程,竟然有一種詭異的快感。
週五下午五點。Ken 抱著筆電,像個剛從墳墓裡爬出來的喪屍,敲響了主管辦公室的門。
「進來。」
熊先生正在收拾東西準備下班。Ken 走進去,把電腦放在桌上,手指還在微微發抖。
「熊哥,」Ken 的喉嚨因為缺水,聲音沙啞得像吞了炭,「做完了。」
熊先生挑了挑眉,看了一眼手錶,又看了一眼這個眼窩深陷、臉色蠟黃的年輕人。他原本
以為 Ken 頂多能做出一個架構圖,或者在週三的時候就會跑來求救喊延期,「跑一遍給
我看。」
Ken 按下了 Enter 鍵。螢幕上的數據流開始飛快地跑動。一開始很順暢,效能監測圖表
顯示新的模組比舊的快了 30%。熊先生的眼睛亮了一下。
但就在數據量拉到最高峰值(Peak)的時候——
紅字跳出來了。 Segmentation Fault (Core Dumped)。
系統崩潰了。
Ken 的臉色瞬間變得比死人還難看。他死死盯著螢幕,嘴唇哆嗦著:「不......不可能.
.....我昨晚測過五百次了......為什麼......」
他失敗了。在一週不眠不休的努力後,他在最後一刻失敗了。巨大的羞恥感和疲憊感同時
襲來,Ken 覺得眼前一黑,腿一軟,整個人就要往地上栽去。
一隻大手穩穩地抓住了他的胳膊。
「坐下。」熊先生把椅子踢過來,將 Ken 按在椅子上,然後熟練地從抽屜裡拿出一顆巧
克力塞進他手裡,「低血糖。吃了。」
Ken 拿著巧克力,眼淚不爭氣地掉了下來。「對不起......我搞砸了。」
熊先生卻沒有生氣,反而盯著那個報錯的螢幕,嘴角露出了一絲玩味的笑容。
「你把Pointer(指標)的記憶體釋放寫得太激進了。」熊先生指著一行代碼,「你是想
幫我省記憶體空間,對吧?但在多執行緒的情況下,這樣會造成競爭條件。」
Ken 愣愣地點頭。
「但是,」熊先生轉過頭,看著 Ken,「除了這個 Bug,其他的邏輯非常漂亮。你把通訊
效率提升了 30%。這是我當年做不到的。」
「你知道我為什麼給你一週嗎?」熊先生問。Ken 茫然的搖頭。
「我是要讓你知難而退,讓你來跟我討價還價。」熊先生嘆了口氣,「這麼大的模組,正
常時程是一個月。我以為你會在週三就衝進來對我吼說『這不可能做完』。」
Ken 傻住了。「你是故意的?」
「我是要教你專案管理。」熊先生無奈地看著這個實心眼的孩子,「但沒想到你這個笨蛋
,竟然真的想用一週把它硬吞下去。而且......」他看著螢幕,「你還真的吞下去了
90%。」
熊先生站起來,拍了拍 Ken 的肩膀。
「雖然程式崩潰了,但你證明了一件事:你的技術底子夠硬,還有,你的意志力比我想像
的強。下週一開始,給你一個月把這個 Bug 修好,然後寫出完整的測試案例。這就是你
今年的 KPI。」
熊先生拿起外套與包包走到門口,停下腳步回頭。
「Ken,還有一個任務。」
「是?」Ken 立刻坐直。
「現在,立刻,回家睡覺。如果週末讓我看到你登入公司 VPN,我就把你帳號鎖了。」熊
先生推了推眼鏡,「這也是命令。」
門關上了。
Ken 坐在主管辦公室裡,嘴裡含著那顆甜得發膩的巧克力。看著螢幕上那個刺眼的紅字,
他突然笑了。笑著笑著,就趴在桌上睡著了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.63.9.17 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/BB-Love/M.1769664676.A.42B.html
1F:推 Auxo : 哇喔 雖然看不懂 但感覺哪裡很酷 蹲(被揍 01/29 14:28
2F:推 wildphoenix : 在主管辦公室睡著!?真是好大的膽子 01/30 14:46