SWE · 行为 / Coding

TikTok 为什么选方案 A:约束、备选与可逆决策

回答项目技术选型,比较当时可行替代方案与改变决定的证据。

题目重点:回答项目技术选型,比较当时可行替代方案与改变决定的证据。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 基于真实项目,当时信息与事后结果分开;两条相同故事来源合并同一问点。

解题路线

  1. 先列当时需求、规模、团队熟悉度和风险;没有约束的“最佳技术”不能解释决定。
  2. 选择两三个真实可行替代,用一致维度比较正确性、延迟、成本、运维和交付时间;说清放弃了什么能力。
  3. 如果证据不足做最小prototype或压测,明确代表性负载、成功阈值与限度。小样本bench不能直接外推生产所有场景。
  4. 决策记录假设、owner、回退与升级触发条件。后来规模变化时应重新评估,不必维护原决定永远正确。

手动走一遍

选择单进程队列而非Kafka,可能因低流量和交付约束,但必须承认耐久性/重放不足,给未来阈值。选择多线程并不自动比进程快,要说明工作负载与语言运行时。

规模与取舍

方案比较用真实指标和全链路成本;没有数字时说明测量方法,避免事后编造性能比例。

易错点与追问

容易失分的边界

  • 只说A熟悉/B太复杂。
  • 忽略被放弃的能力。
  • 事后合理化但没有当时证据。

继续深挖

  • 什么变化会让你换方案?
  • 如何设计低成本可逆试验?
✓已复制微信号!