Topic Guide

System Design 面试辅导:系统设计 Mock 与 Trade-off

System Design 面试辅导完整路线:覆盖需求澄清、容量估算、数据模型、API 设计、瓶颈分析、故障处理和 trade-off 表达,附五维评分表、高频题拆解和系统设计 Mock 复盘模板,适合 Senior SWE 与 L4+ 候选人。

Self-Scoring

五维评分表:Mock 后怎么给自己打分

一次系统设计 Mock 结束后,建议按下面五个维度给自己打分(每维 1-5 分)。任何一维低于 3 分,就优先补该维度的训练,而不是再刷一整套新题。

维度面试官在听什么低于 3 分的典型表现对应训练动作
容量估算能否从业务量级推出 QPS、存储、带宽和分片规模,并说明假设只说“加机器”“上缓存”,没有数字和量级推导每周 1 道估算专项:给定 DAU / 峰值倍数,推 QPS、数据量、带宽,写下每个假设
数据模型核心实体、关系、索引、一致性和读写路径是否清楚直接画服务框,没有 schema;JOIN 和分片键说不清先写 10 行 schema 再画图;对每张表说明主键、热点、分片键和归档策略
瓶颈分析能否指出真实瓶颈(热 key、慢查询、带宽、GC)并量化影响瓶颈列表是背的,无法回答“为什么这里是瓶颈”每次 mock 后追问自己:瓶颈在哪个组件、什么量级下触发、如何验证
故障处理失败路径、降级、回滚、数据修复和监控告警是否有方案只讲 happy path;被问“某个服务挂了怎么办”卡住为每道题准备 2 个故障场景:组件宕机、数据不一致,写出降级和恢复顺序
Trade-off每个关键选择是否有备选方案和取舍理由,并落到具体指标“用 Redis”“上 K8s”没有理由;说不出备选方案为什么被放弃每个组件回答三句:选了什么、放弃了什么、用哪个指标衡量

Drills

这一类题型先练什么

先把训练动作具体化,再去看文章和公司攻略,否则容易停留在概念层。

训练 01

设计 Gaming Leaderboard

设计一个游戏排行榜,支持实时 top K、好友榜、赛季重置、作弊用户过滤和历史榜单查询。假设 DAU 1000 万,峰值写入每秒 5 万。

参考思路

  • 先拆需求:global top K、friend ranking、season reset、anti-cheat、history query。
  • 写路径用 event ingestion + stream aggregation,读路径用 Redis sorted set / materialized ranking。
  • 好友榜可按用户好友列表批量查 score 后排序,超大好友列表再做缓存。
  • 补风险:作弊用户标记延迟、赛季切换一致性、热 key、历史榜单落盘和监控。

面试官主要看:读写路径是否分清,实时性、热榜缓存、重置和反作弊是否有取舍。

训练 02

设计 Payment Ledger

设计一个支付账务系统,支持 charge、refund、fee、multi-currency balance、idempotency key 和 reconciliation。

参考思路

  • 先声明 ledger 是 append-only,balance 是由 ledger 聚合出的视图。
  • 每个交易必须有 idempotency key、状态机、金额精度、币种和审计字段。
  • 写路径先落 transaction intent,再处理外部支付结果,最后异步更新 balance view。
  • 补 reconciliation:对账外部 provider、处理 partial failure、重复回调和人工修复。

面试官主要看:账务一致性、幂等、审计、金额精度和失败恢复,而不是只画支付 API。

训练 03

设计实时位置服务

设计一个司机实时位置系统,用户可以查询附近司机,司机每 3 秒上报位置,需要处理热点区域、过期位置和降级。

参考思路

  • 位置写入走 ingestion service,按 geohash / S2 cell 分片存储最近位置。
  • 附近查询先查周边 cell,再按距离过滤和排序,结果可以短 TTL 缓存。
  • 位置需要 TTL,超过阈值不参与派单;热点 cell 需要拆分或限流。
  • 补监控:上报延迟、位置丢失率、查询 p95、cell 热点、fallback 到较旧位置。

面试官主要看:空间索引、实时写入压力、位置过期、热点和降级策略。

Audience

适合谁

适合 L4+ SWE、Backend、Infra、DE 候选人,尤其是准备 Senior SWE 系统设计轮次的人。

需求澄清容量估算API / Schema架构图瓶颈分析Trade-off

Deep Links

继续深入看这些内容

每个题型页都连接到可继续阅读的博客、可直接使用的资源模板、相关公司攻略和岗位路线。

Why It Matters

为什么这一类题型会影响面试评价

题型页的目标不是罗列概念,而是帮助候选人理解面试官在这一轮真正观察什么: 你是否能澄清问题、组织结构、处理边界、解释取舍,并在压力下保持可复盘的沟通节奏。

评价信号

面试官听到的是推理过程,不只是最终答案

每个模块都需要能讲清前置假设、选择依据、失败路径和复杂度,才能避免“会做但讲不稳”。

训练产出

每次练习都应该留下可复用的复盘材料

建议记录题型、卡点、错误原因、边界测试、follow-up 版本和下一次训练重点。

临场目标

把不确定题目变成有结构的推进过程

真正的冲刺价值,是让候选人遇到变体时仍能稳定澄清、拆解、实现和复盘。

Common Risks

常见失分风险

先识别风险,再决定训练顺序。

风险

只背模板,不知道为什么这样设计。

风险

画了组件,但讲不清数据流、失败路径和一致性。

风险

忽略监控、降级、回滚和成本。

Training Plan

建议辅助训练路径

每条路径都可以按目标公司、岗位和面试日期继续细化。

01

先建立通用 6 步框架,再按题型补细节。

02

用排行榜、消息流、搜索、文件存储、调度系统等题做 mock。

03

每次复盘都要求补一个 trade-off 和一个 failure mode。

Mock Output

一次合格训练结束后应该拿到什么

如果训练后只知道"这题怎么做",说明复盘还不够。更好的结果是形成下一轮能直接使用的表达和检查清单。

答题流程

一套能重复执行的开场、澄清、推进和收尾顺序

风险清单

3-5 个最容易扣分的习惯,以及下一次如何避免

追问素材

可展开的项目证据、边界测试、trade-off 和失败复盘

FAQ

关于 System Design 面试辅导 的常见问题

常见问题

System Design 面试辅导一般怎么安排一次训练?

常见结构是 45-60 分钟完整系统设计 Mock:前 10 分钟做需求澄清和容量估算,中间 30 分钟推进架构设计,最后 10-15 分钟由面试官追问瓶颈、故障和 trade-off。结束后用 15-30 分钟复盘,按五维评分表定位失分点。建议 2-4 周做 3-5 次,每次换不同题型(排行榜、消息流、存储、搜索、调度)。

常见问题

系统设计 Mock 和系统设计代做有什么区别?

系统设计 Mock 是训练:面试官按真实节奏提问和追问,你在压力下推进,结束后拿到评分、失分点和下一轮训练清单,目标是让你自己能在真实面试里把题讲下来。任何声称“代做系统题”“保证通过”的服务都不应该被选择——它既无法替代真实面试中的表达,也违反多数公司的诚信要求。

常见问题

Senior SWE 的系统设计面试和初级候选人考的一样吗?

不一样。初级候选人(L3/L4 早期)重点看能否走完整条设计路径、估算不跑偏;Senior SWE(L5+)更看重深度:数据模型的一致性和演进、跨服务故障的恢复策略、容量增长下的分片与热点处理,以及每个 trade-off 背后的业务和成本理由。Senior 轮次里“如果用户量再涨 10 倍怎么办”是高频追问,建议专门准备。

常见问题

怎么练习 System Design 面试辅导 题型?

先从 需求澄清、容量估算、API / Schema 入手,每个模块至少做 5-10 道题目,记录卡点和 follow-up 版本。再做 2-3 次模拟面试,确保表达流畅、逻辑清晰。

常见问题

面试官在这一轮最看重什么?

面试官关注的是你的推理过程、前置澄清、复杂度评估、边界测试和 follow-up 处理。不仅仅是最终答案,更是整个解题过程的沟通质量。

常见问题

这一类题型的常见失分点有哪些?

只背模板,不知道为什么这样设计。;画了组件,但讲不清数据流、失败路径和一致性。;忽略监控、降级、回滚和成本。。建议每次训练后做复盘,记录扣分点和改进方向。

需要针对这一轮做 mock 或复盘?

添加微信 interview_coach_pro,发送目标公司、岗位、轮次和当前卡点。

返回题型库
已复制微信号!