664 字
约 2 分钟
10
S25-J04 · 系统设计面试:从需求到方案

适用读者:设计题不知道从哪开口的人。
前置:S25-J03、S17-B01。
覆盖旧文:—(E 驱动)
扩展点:E-S25-006(45 分钟结构)。
上一篇:S25-J03 · 源码阅读方法(附三个示例)
下一篇:S25-J05 · 原理速查。


1. 一句话结论

45 分钟不是用来"画完架构图"的,而是用来展示"你怎么做决策":需求澄清 → 估算 → 高层设计 → 深入一个点 → 取舍。

时间分配(E-S25-006):

分钟 做什么
0–5 澄清需求(功能/规模/一致性)
5–10 容量估算(QPS/存储)
10–25 高层设计(组件 + 数据流)
25–40 深入 1–2 个点(如短链的 ID 生成)
40–45 取舍与故障(S17-A01)

2. 澄清需求的四问

问 为什么
核心功能是什么(先做哪个) 防跑偏
读多还是写多 决定架构
规模(QPS/数据量) 决定要不要分片
能接受最终一致吗 决定要不要分布式事务

判据:"不问规模就画架构,是不是在猜?" 是 → 面试官会打断你。


3. 容量估算的最小算法

日请求数 ÷ 86400 ≈ 平均 QPS;峰值 ≈ 平均 × 3–10
存储 = 日增数据 × 保留天数

"估算要不要精确":不要——考的是"量级感"(万级 vs 百万级决定方案)。


4. 深入点的选择

值得深入 不值得
有取舍的点(ID 生成/一致性) 显而易见的(加个缓存)
有故障模式的 无风险的
与规模相关的 与规模无关的

5. 五个误区

误区 真相
"上来就画架构" 先澄清需求
"估算要精确" 要量级
"组件越多越全" 只画必要的
"不深入细节" 要深入 1–2 个点
"不提故障" 故障域是加分项

6. 自检

  1. 45 分钟怎么分?
  2. 澄清需求四问?
  3. 容量估算的最小算法?
  4. 什么点值得深入?
  5. 为什么"不提故障"是减分?

7. 下一篇

S25-J05 · 原理速查:树、协议、JIT、栈帧

设计讲完,下一篇讲"小而硬"的原理点怎么答准。


本篇属于系列《S25 · 求职与面试》。扩展点 E-S25-006。

S25-J04 · 系统设计面试:从需求到方案
https://www.clxhxhhr.top/posts/5585/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。