面試真題講解
逐題講清解題思路、關鍵實作與常見追問。
系統設計面試:如何設計高流量票務訂票系統?
從虛擬等候室、座位狀態機與付款邊界推導高流量票務系統,重點處理熱門開賣時的流量整形、限時保留座位、不超賣和未知付款結果。
後端面試:如何維持資料庫與快取一致?
從 cache-aside 的寫入後失效開始,拆解失效遺失、舊讀取延遲回填與複本延遲,再用有限陳舊預算、交易式 outbox 和版本柵欄設計可驗證的資料庫快取一致性方案。
如何回答「請分享一次你適應重大變化的經歷」?
用 STAR 說清重大變化如何讓舊假設失效、你怎樣重新判斷限制、協商取捨並建立過渡節奏,再以業務連續性和適應成果證明改變有效。
前端面試:Web Worker、SharedWorker 與 Service Worker 該如何選擇?
用大型檔案解析、跨分頁單一連線與離線重試三項需求,推導 Dedicated Worker、SharedWorker 與 Service Worker 的選擇,並涵蓋生命週期、通訊、持久化、相容性降級與測試。
資料工程面試:如何診斷並治理湖倉的小檔案問題?
以一張持續微批寫入的 Apache Iceberg 表為例,拆解小檔案的證據鏈、寫入側預防、併發壓實、快照清理、容量估算與上線驗收。
網路面試:TCP 如何偵測並復原封包遺失?
從位元組序號、累積 ACK 和一條固定遺失時間線,推導逾時重傳、快速重傳、SACK 與 RACK-TLP 的觸發條件、壅塞代價和封包擷取判讀方法。
演算法面試:如何用雙向 BFS 解單字接龍?
把單字接龍建模為隱式無權圖,從最短序列要求推導 BFS,並實作每輪擴展較小前緣的雙向搜尋,附上嚴謹證明、複雜度核算與對抗測試。
後端面試:如何輪替 JWT 簽章金鑰而不引發驗證故障?
設計可驗證的 JWKS 輪替協定,處理快取、未知 kid、簽發方故障與金鑰洩漏,避免新舊權杖在切換期間同時失效。
系統設計面試:如何設計即時聊天系統?
透過拆分持久化接收、即時傳送和已讀狀態,再組合冪等傳送、會話內排序、可續傳同步及短暫線上狀態鏈路,設計一個即時聊天系統。
產品經理面試:你會如何在開發前驗證一個產品構想?
把產品構想拆成可證偽的高風險假設,用與假設匹配的最低成本實驗取得行為證據,並以預先約定的門檻決定開發、縮小範圍、轉向或停止。
如何回答「請分享一次你向非技術利害關係人解釋複雜技術問題的經歷」?
用以決策為中心的 STAR 回答,說清楚如何判斷聽眾背景、保留必要因果關係、轉譯風險與取捨,並以可觀察證據確認對方真正理解。
前端面試:Cookie、localStorage、sessionStorage 和 IndexedDB 應該如何選擇?
用讀取方、生命週期、資料模型、信任邊界和事實來源五個維度選擇瀏覽器儲存,並處理身分驗證、離線同步、多分頁、配額與清理。
後端面試:如何設計安全的檔案上傳 API?
從隔離、類型驗證和非同步掃描出發,設計防止惡意檔案、越權下載、掃描競態與資源耗盡的安全上傳生命週期。
Linux 面試:epoll 的水平觸發與邊緣觸發有什麼差別?
從就緒語義、非阻塞讀寫與 EAGAIN 出發,解釋 epoll 的 LT/ET、EPOLLONESHOT、寫入事件管理、公平性與停滯排查。
演算法面試:如何實作 O(1) 的 LFU 快取?
用鍵索引、頻次桶、桶內雙向鏈結串列和最小頻次指標實作 LFU 快取,處理同頻 LRU 淘汰,並證明 get 與 put 的期望 O(1) 複雜度。
SQL 面試題:如何安全刪除重複資料並保留最新紀錄?
先定義業務鍵與確定性的保留資料列,再固化可稽核的淘汰列到保留列對應,遷移參照、分批刪除,並以資料庫唯一性約束防止復發。
系統設計面試:設計可靠的 Webhook 投遞平台
設計多租戶出站 Webhook 平台,涵蓋持久化扇出、至少一次投遞、端點隔離、不可變載荷簽章、有限重試、重送、SSRF 防護與可驗證的故障復原。
產品經理面試:如何衡量產品市場契合度?
學習如何依細分市場結合留存、付費、自然拉力、使用者依賴與交付成本判斷產品市場契合度,並把混合訊號轉成擴量、聚焦、迭代或暫停決策。
行為面試:請談一次你委派重要職責的經驗
用 STAR(R) 說清楚如何選擇值得交付的成果與合適負責人,真正移交決策權限,依風險設定護欄,並在不微觀管理的前提下繼續承擔應有責任。
Linux 面試:如何解釋並診斷 CPU 排程延遲?
從 EEVDF 的可執行實體選擇出發,結合 nice、cgroup CPU 權重與配額、親和性和排程軌跡,找出尾延遲究竟來自執行佇列、限流或阻塞等待。
後端面試題:如何防止多租戶 API 的 BOLA/IDOR 越權?
以 B2B 文件服務為例,從授權元組、租戶範圍查詢、資料庫縱深防禦與多帳戶負向測試,系統性處理物件層級越權及跨租戶資料外洩。
資料工程面試:如何安全回填大規模歷史資料?
把 180 TB 歷史重算拆成可恢復分割區,用確定性輸入、獨立資源、增量追平、驗證門檻和版本切換保護目前的生產管線。
前端面試:如何診斷並修復 JavaScript 記憶體洩漏?
用可重複操作和 GC 後基準證明洩漏,再透過堆積快照、保留路徑與分配時間軸定位責任物件,按資源所有權修復並用同一實驗驗收。
系統設計面試:如何設計個人化動態消息?
從候選內容生成、混合扇出、分層排序、穩定分頁、權限過濾與故障復原,設計一個能應對高粉絲作者熱點與最終一致性的個人化動態消息。