第 40 章 系统设计模拟面试
本章提供基于题卡的限时模拟流程。候选人应在每个阶段主动报出假设、同步思考过程,并在结束时用自评问题复盘。
30 分钟:通用后端系统设计
本场使用三张题卡:Q-GEN-CAP-01、Q-GEN-DATA-01 和 Q-GEN-REL-02。
| 阶段 | 时长 | 候选人任务 | 面试官指引 |
|---|---|---|---|
| 开场与假设 | 4 分钟 | 确认业务目标、使用者、规模口径和非目标。 | 只补充必要约束,记录候选人主动提出的假设。 |
| 容量推导 | 7 分钟 | 围绕 Q-GEN-CAP-01 给出计算口径,并把结果落到组件规模。 | 追问峰谷差异和余量来源,观察推导是否自洽。 |
| 数据边界 | 9 分钟 | 围绕 Q-GEN-DATA-01 说明关键状态、读写路径与责任边界。 | 要求明确每个关键状态的归属和更新顺序。 |
| 可靠性追问 | 7 分钟 | 围绕 Q-GEN-REL-02 处理调用失败、重复与恢复情形。 | 改变一个失败条件,观察方案是否仍能闭环。 |
| 收束 | 3 分钟 | 总结方案、主要风险和下一步验证项。 | 请候选人指出一个最需要取舍的决定。 |
面试官指引:
- 按题卡顺序推进,不朗读题卡正文,也不提前给出实现选项。
- 候选人跳过假设或量化依据时,要求其补足依据后再进入下一阶段。
- 记录其是否能把容量、数据权威和失败处理连接为同一条链路。
候选人自评问题:
- 我是否在开始阶段说明了范围、数量级和关键假设?
- 我是否明确了关键状态的归属,以及读写路径的责任边界?
- 我是否对失败、重试和重复结果给出了可以验证的处理方式?
45 分钟:电商专项系统设计
本场使用三张题卡:Q-ECOM-ARCH-001、Q-ECOM-TRADE-026 和 Q-ECOM-PEAK-004。
| 阶段 | 时长 | 候选人任务 | 面试官指引 |
|---|---|---|---|
| 业务边界 | 7 分钟 | 确认平台角色、交易范围和最重要的业务约束。 | 用一个边界变化检查候选人的领域划分。 |
| 架构拆分 | 11 分钟 | 围绕 Q-ECOM-ARCH-001 给出服务边界、依赖关系和核心接口。 | 追问边界两侧的数据归属与同步方式。 |
| 交易主线 | 13 分钟 | 围绕 Q-ECOM-TRADE-026 描述状态演进、触发条件和异常回退。 | 在中途插入一个重复或乱序事件,要求候选人调整说明。 |
| 峰值追问 | 9 分钟 | 围绕 Q-ECOM-PEAK-004 说明峰值前准备、入口控制和压力转移。 | 逐步提高流量或缩小资源,观察降级优先级。 |
| 收束与复盘 | 5 分钟 | 说明最关键的取舍、风险指标和验证计划。 | 请候选人比较一个备选方案并作出选择。 |
面试官指引:
- 先确认交易语义,再要求候选人画出架构与状态变化,避免只讨论组件名。
- 每次追问只改变一个约束,保留候选人上一轮方案作为比较基线。
- 重点观察服务边界、状态演进和峰值处理是否相互一致。
候选人自评问题:
- 我是否先确定了业务边界与数据归属,再划分服务职责?
- 我是否完整说明了交易状态的进入、退出和异常分支?
- 我是否把峰值措施与日常架构的责任边界说清楚?
60 分钟:高级系统设计答辩
主案例使用 Q-ECOM-CASE-002。递进追问依次使用 Q-ECOM-SUPPLY-019、Q-ECOM-TRADE-030 和 Q-ECOM-PEAK-006。
| 阶段 | 时长 | 候选人任务 | 面试官指引 |
|---|---|---|---|
| 约束协商 | 8 分钟 | 明确目标、成功标准、规模口径、资源边界和不可接受的风险。 | 至少引入一个冲突约束,要求候选人排序优先级。 |
| 白板架构 | 15 分钟 | 围绕 Q-ECOM-CASE-002 在白板画出入口、核心链路、状态存储与依赖关系。 | 要求图中每条关键连线都说明方向、同步方式和失败后的去向。 |
| 递进追问一 | 10 分钟 | 围绕 Q-ECOM-SUPPLY-019 调整关键资源的并发控制与校验边界。 | 追问高并发下的结果判定和恢复责任。 |
| 递进追问二 | 10 分钟 | 围绕 Q-ECOM-TRADE-030 补充请求去重、状态衔接和异常后的可恢复性。 | 改变请求到达顺序,检查设计是否仍保持一致。 |
| 递进追问三 | 8 分钟 | 围绕 Q-ECOM-PEAK-006 说明入口保护、优先级和观测信号。 | 要求候选人给出触发保护与解除保护的判断依据。 |
| 最终取舍讨论 | 9 分钟 | 比较两个可行方案,说明可靠性、成本、复杂度和演进上的取舍。 | 质询最脆弱的假设,并要求候选人说明何时应推翻当前选择。 |
面试官指引:
- 白板阶段只要求结构、边界和关键流向;细节应在递进追问中按需展开。
- 每张追问题卡都以前一阶段方案为前提,要求候选人明确哪些结论保持不变、哪些需要修改。
- 最终讨论聚焦决策依据,避免把答辩变成对题卡正文的复述。
候选人自评问题:
- 我的白板是否让他人能看出边界、流向、状态位置和主要故障路径?
- 我是否在每个递进追问后明确了保留的假设与修改的决定?
- 我是否用业务影响、可靠性、成本和复杂度解释了最终取舍?