题目重点:回答项目技术选型,比较当时可行替代方案与改变决定的证据。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 基于真实项目,当时信息与事后结果分开;两条相同故事来源合并同一问点。
解题路线
- 先列当时需求、规模、团队熟悉度和风险;没有约束的“最佳技术”不能解释决定。
- 选择两三个真实可行替代,用一致维度比较正确性、延迟、成本、运维和交付时间;说清放弃了什么能力。
- 如果证据不足做最小prototype或压测,明确代表性负载、成功阈值与限度。小样本bench不能直接外推生产所有场景。
- 决策记录假设、owner、回退与升级触发条件。后来规模变化时应重新评估,不必维护原决定永远正确。
手动走一遍
选择单进程队列而非Kafka,可能因低流量和交付约束,但必须承认耐久性/重放不足,给未来阈值。选择多线程并不自动比进程快,要说明工作负载与语言运行时。
规模与取舍
方案比较用真实指标和全链路成本;没有数字时说明测量方法,避免事后编造性能比例。
易错点与追问
容易失分的边界
- 只说A熟悉/B太复杂。
- 忽略被放弃的能力。
- 事后合理化但没有当时证据。
继续深挖
- 什么变化会让你换方案?
- 如何设计低成本可逆试验?
