跳至主要內容
YIP NEWS
生活 美食生活

面試官問了一串資料庫,而你家的湯其實早就燉過這些答案

招銀網絡科技後端一面的一串技術問答,被我們翻譯成廚房裡備料、火候與那一鍋湯的滋味故事。

YIP NEWS 編輯室 閱讀約 5 分鐘

九月十日,招銀網絡科技的後端一面題目在牛客網上流傳開來。自我介紹之後,是一連串扎實的技術問答:Redis 的過期策略、快取擊穿、SpringBoot 的自動裝配、MySQL 的隔離級別,最後壓軸的,是一道場景題,要設計一套查詢快、高可用、強一致的銀行餘額系統。

看完這份題目單,我第一個想到的不是程式碼,是我家廚房裡那鍋正在爐子上小聲冒泡的蘿蔔排骨湯。你別笑,一場面試和一鍋湯,走的是同一套邏輯:備料、控制火候、防呆,還有最後端上桌那一刻,不能出錯。

先備料:那些「過期策略」家裡冰箱天天在演

Redis 問過期策略,聽起來很硬。但你的冰箱其實每天都在執行這件事。

週末買回來的那把青江菜,翠得發亮,梗子掰開來會咔一聲脆響。你知道它大概撐五天,第五天葉緣開始轉黃,湊近聞,那股青草味裡混進了一點點酸。這就是最樸素的過期策略:時間到了,東西要離開位置,把空間讓給新鮮的。

淘汰策略也一樣。冰箱就那麼大,年節剩下的臘肉、上個月冷凍的蝦仁、不知何時買的一罐辣豆瓣,總有塞不下的時候。你得決定誰先被請出去。大多數人家的答案是:最久沒碰的那個。這在工程上叫什麼不重要,重要的是你娘十幾年來都是這樣清冰箱的,而且很少出錯。

快取擊穿,說的是高麗菜旺季的攤位

題目裡問到快取擊穿和快取穿透。廚房的版本,我是在市場裡看懂的。

我家樓下的市場有攤高麗菜,冬天盛產時一顆十塊,脆得像咬冰,切開來菜葉層層疊疊,白裡透一點青。某年寒流連下來三天,中南部供貨斷了,攤子上忽然空了,所有人都湧向僅剩的兩三顆,價格瞬間翻倍。這就是擊穿:本來擋在前面的那層緩衝,突然沒了,後面的壓力直接砸到源頭。

穿透更慘一點。你想要一樣根本不存在的東西,比方說盛夏要求一顆土產草莓,攤販兩手一攤,可你明天再來問、後天再來問,每次都逼他翻遍整個攤子。聰明的攤販會直接在牌子上寫:本季無草莓。一張紙,擋掉九成的無效詢問。這張紙,大概就是工程師說的空值快取。

火候與雷點:番茄要先炒,蛋不能煮老

面試題裡有一條我特別喜歡:透過註解實現非同步多工,會有哪些雷點。

廚房裡的平行作業,雷點可多了。你一定試過:一邊燒水煮麵,一邊起油鍋炒番茄。番茄得先下鍋,用小火慢慢炒出沙,炒到那一鍋紅從塊狀化成濃稠的醬,酸味轉柔,甜味才冒出頭。這時候如果麵已經下鍋而你還在顧番茄,麵就會過了那個彈牙的臨界點,撈起來塌軟,怎麼救都救不回來。

非同步的雷,就在這裡。兩件事同時進行很有效率,但你得先想清楚哪件事不能等、哪件事等了就毀。蛋花湯的蛋是經典案例:湯滾了才淋蛋,熄火,用餘溫讓蛋絮凝成一朵一朵柔軟的雲。下太早,蛋老成橡皮;攪太兇,湯渾了。順序錯一個,整鍋的口感就換了一個世界。

這與我們先前聊過的面試廳裡的火候考試其實是同一件事:技術問答的骨幹,永遠是時間與資源怎麼分配。

隔離級別:一鍋滷肉不能什麼都一起丟

MySQL 的隔離級別,問的是多個操作同時進行時,彼此看不看得見對方做到哪裡。

我家那鍋老滷最有感覺。滷鍋是共享資源,誰都可以來丟東西:早上阿嬤丟了蛋,中午我媽加了豆乾,晚上我想滷一副雞翅。問題是,如果大家都同時開蓋、同時撈,蛋殼破了湯會濁,豆乾還白著就被撈走,雞翅根本沒上色。

所以家常的規矩是:一次滷一樣,滷好了撈起來,再換下一個。效率慢一點,但每一樣都滷得乾乾淨淨,醬色的光澤勻勻地掛在表面,筷子一夾,晃出琥珀色的光。事務的隔離,說穿了就是這份「你先用,我用排隊」的體貼。

壓軸場景題:餘額不能錯,味道也一樣

最後那道銀行餘額系統的設計題,要求快、穩、而且一分錢都不能差。

廚房裡最接近這種壓力的,是過年那桌給十幾個人喫的菜。阿嬤的腦子裡有一套系統:哪道菜可以前一天先做好(這叫快取),哪道菜必須開飯前現炒(這叫強一致),哪道湯從早上就吊著小火(這叫非同步背景任務)。紅燒蹄膀要燉到筷子一撥就骨肉分離,醬汁收得亮,抿一口,膠質黏在脣上;炒青菜卻必須最後十分鐘才下鍋,大火,鑊氣一衝,起鍋時葉子還挺著。

順序錯了會怎樣?青菜先炒好放著,上桌時一盤黃塌塌,像洩了氣。蹄膀臨時才開火, guests 坐了一小時,筷子戳下去全是硬的。一桌菜的成敗,從來不是單一技巧,是調度。

面試結束之後,回家喫飯

牛客網的討論串裡,有人口袋裡還揣著沒答好的題目,有人感謝面試官給了建議,也有人自嘲被傳統八股拷打得體無完膚。九月就是這樣的季節,整個求職圈都繃著。

但無論今天答得怎麼樣,晚上回家,爐子還是得開火。切兩片薑,拍一顆蒜,冷油下鍋,聽見那聲細小的滋啦,香味爬上來的瞬間,你會記起一件事:那些被問倒的題目,答案其實你天天都在實作,只是換了一套語言。

湯好了。先喫飯,明天再戰。

面試季宵夜, 廚房日常, 食物與生活記憶