面試真題講解
逐題講清解題思路、關鍵實作與常見追問。
系統設計面試:如何設計軟體包與製品倉庫?
設計支援發布、版本解析、內容定址、並發下載、權限、快取、撤回和供應鏈完整性的軟體包與製品倉庫。
產品經理面試:如何設計本地活動探索產品?
從使用者分群、活動供給、信任與安全、位置權限、推薦排序和成功指標出發,設計幫助使用者發現附近活動的產品。
資料工程面試:如何設計來源系統與數倉的對帳流水線?
圍繞業務鍵、金額與筆數校驗、延遲資料、差異分級、重跑和稽核,設計能定位並修復來源系統與數倉不一致的對帳流水線。
程式面試:如何實作不允許重疊的日程預約?
用半開區間、前驅後繼查找與有序映射實作 My Calendar I,說明邊界、複雜度與並行服務的變化。
行為面試:團隊權責不清時,你如何主動承擔並建立邊界?
用真實經歷回答權責模糊題,展示風險識別、臨時接手、協作釐清、責任矩陣與結果證據。
通用面試:如何解釋 CAP 定理並做出一致性取捨?
用網路分割情境準確解釋一致性、可用性與分割容錯,連接到使用者承諾、降級策略、修復流程與可觀測指標。
後端面試:如何安全使用 HTTP 103 Early Hints?
說明 103 暫時回應的時序、Link 資源提示、代理相容性、快取邊界與收益驗證,避免把提示當成最終回應。
前端面試:如何讓非同步狀態更新對讀屏使用者可感知?
針對搜尋、儲存與上傳等非同步操作,設計穩定的 status live region、播報節流、焦點策略與可驗證的降級體驗。
資料工程面試:如何設計受治理的指標語意層?
围绕指標定義、維度、join 語意、版本治理和消费接口,设计让 BI、分析与应用使用同一口径的資料語意层。
Coding 面試:如何線上維護資料流的中位數?
用大小堆維護上下兩半資料,在 O(log n) 插入和 O(1) 查詢下處理無界整數流,並說明重複值、偶數長度與資源邊界。
產品經理面試:為收入不穩定的人設計預算產品
围绕收入波动、帳單优先级和现金緩衝设计預算产品,平衡可执行性、隱私、安全与长期财务行为。
資料工程面試:如何設計可稽核的分散式資料刪除管道?
涵蓋資料發現、刪除請求編排、下游傳播、備份與保留例外,用可證明狀態和稽核記錄避免只刪主庫。
前端面試:如何安全更新 Service Worker,避免旧快取与新頁面不匹配?
从 Service Worker 的 install、waiting、activate 生命周期出发,设计可回復、可提示使用者且不破坏已開啟頁面的更新策略。
系統設計面試:如何設計分散式限流服務?
從業務維度、演算法、分散式計數、降級和可觀測性出發,設計能保護依賴又不誤傷正常使用者的限流平台。
後端面試:如何設計在並發寫入下仍一致的游標分頁?
用穩定排序鍵、不透明游標、快照邊界和明確的重複/遺漏語意,解決 OFFSET 分頁在動態資料集上的一致性問題。
Coding 面試:如何實作一个 O(1) 查詢最小值的堆疊?
通过輔助堆疊维护每个深度的最小值,在 push、pop 和 getMin 都保持 O(1),并处理重複最小值与空堆疊边界。
前端面試:如何設計可靠的 WebSocket 斷線重連客戶端?
用連線狀態機、帶抖動的指數退避、心跳、序號補償和頁面生命週期控制,避免重連風暴與訊息遺失。
資料工程面試:如何設計資料新鮮度 SLO 與監控?
把業務可用時間轉成可計算的新鮮度指標,涵蓋事件時間、到達時間、延遲分位數、告警、降級與回放。
Linux 面試:如何診斷高 I/O wait?
从 iowait 的记账边界出发,结合 PSI、工作状态、裝置佇列和 cgroup 口径,建立可驗證的 Linux I/O 等待诊断闭环。
系統設計面試:如何設計安全的 Leader Election 服務?
設計帶租約、fencing token 與故障轉移的 leader election,避免 split-brain 與舊 leader 繼續寫入。
通用面試:如何解釋 NUMA 並診斷遠端記憶體延遲?
從 NUMA 拓撲、執行緒與記憶體親和性出發,定位遠端存取、遷移與排程造成的效能回歸。
產品經理面試:如何設計內部開發者平台?
把內部開發者平台當作產品,識別開發者任務、打造黃金路徑、獲得採用並衡量交付與體驗結果。
後端面試:如何設計安全的 Request Hedging?
用延遲複製請求降低尾延遲,同時控制額外負載、取消、冪等與故障放大風險。
程式設計面試:實作一個 Bloom Filter
實作支援 add 與 mightContain 的 Bloom Filter,說明誤判、參數估算、刪除限制與測試。