系統設計面試
一句話定義
系統設計面試是技術面試中的開放式架構討論:候選人要在模糊需求下釐清邊界、估算容量、提出高層架構、深入關鍵元件並說明取捨,讓面試官看見其工程判斷與溝通方式。
核心要點
四步流程
2026-05-14-搞定系統設計面試 的框架可壓成四步:
| 步驟 | 面試現場要做什麼 | 常見失誤 |
|---|---|---|
| 1. 理解問題並確定邊界 | 問需求、使用者、規模、讀寫比例、功能範圍與非功能需求 | 一上來畫架構,結果解錯題 |
| 2. 提出高層設計並取得認同 | 畫核心資料流、主要服務與儲存層,先讓面試官同意方向 | 架構太細,對方還沒接受大方向 |
| 3. 深入關鍵設計 | 選 1-2 個瓶頸深入,例如資料分片、快取失效、限流、佇列、同步 / 非同步 | 每個點都淺談,沒有展示 trade-off |
| 4. 總結 | 回顧設計、限制、可擴展方向與未處理風險 | 時間結束時沒有收斂,留下散亂印象 |
這不是僵硬模板,而是把開放題變成可對話、可調整的討論流程。
面試官看的是思考過程
系統設計面試沒有唯一正解;面試官通常在看:
- 能否把模糊問題變成清楚需求。
- 能否用 封底估算 快速檢查規模與瓶頸。
- 能否把架構圖和資料流講成一個能被討論的模型。
- 能否知道哪些地方需要深入,哪些可先略過。
- 能否承認取捨與限制,而不是把每個技術都說成萬靈丹。
- 能否和面試官互動,而不是背誦預先準備的標準答案。
因此它也是 面試 的一種「雙向對談」:候選人不是單向交卷,而是在共同釐清問題。
練習重點
- 需求澄清練習:拿到題目先列出要問的問題,不急著畫圖。
- 數量級練習:熟悉 QPS、儲存量、頻寬、延遲、可用性等估算口徑。
- 元件組合練習:同一組 分散式系統元件 在不同案例中如何重排。
- 深挖練習:每個案例至少準備一個能深入到資料模型 / cache invalidation / retry / consistency 的點。
- 總結練習:最後 1-2 分鐘用「已滿足需求、限制、下一步」收束,不讓答案停在未完成狀態。
與其他概念的關係
- 面試 — 一般面試頁處理心態、準備與故事表達;本頁是技術面試中的系統設計子場景。
- 系統設計 — 本頁是系統設計能力在面試中的展示方式。
- 封底估算 — 系統設計面試的數量級檢查工具。
- 可擴展性 — 面試最常追問的非功能需求之一。
- 分散式系統元件 — 案例題的常用積木庫。
- STAR原則 — 行為面試用 STAR / QAR 講經歷;系統設計面試則用需求、架構、深挖、總結講工程判斷。兩者都是把思考外部化給面試官看。
- MOC-職涯 / MOC-工程 — 本頁同時屬於職涯求職場景與工程能力地圖。
相關來源
- 2026-05-14-搞定系統設計面試 — 主來源;提供四步框架與 10+ 系統設計案例。
備註
未來可接:LeetCode-style coding interview、behavioral interview、staff engineer architecture interview、real-world architecture review。若累積到非面試場景的 architecture review 來源,應回寫 系統設計 而非只擴充本頁。