标准

  1. 可行解 Work Solution 25%
  2. 特定问题 Special Case 20%
  3. 分析能力 Analysis 25%
  4. 权衡 Tradeoff 15%
  5. 知识储备 Knowledge Base 15%

    可行解 Work Solution

    • Scenario 场景

    • 说人话:需要设计哪些功能,设计得多牛
    • Ask / Features / QPS / DAU / Interfaces

    • Service 服务

    • 说人话:将大系统拆分为小服务
    • Split / Application / Module

    • Storage 存储

    • 说人话:数据如何存储与访问
    • Schema / Data / SQL / NoSQL / File System

    • Scale 升级

    • 说人话:解决缺陷,处理可能遇到的问题
    • Sharding / Optimize / Special Case

    设计系统注意事项

    Ask before design

  6. 问清楚再动手设计

  7. 不要一上来就冲着一个巨牛的方案去设计
  8. 切忌不要做关键词大师

    No more no less

  9. 不要总想着设计最牛的系统

  10. 要设计够用的系统

    Work solution first

  11. 先设计一个基本能工作的系统,然后再逐步优化

    Analysis is important than solution

  12. 系统设计没有标准答案

  13. 记住答案是没用的
  14. 通过分析过程展示知识储备
  15. 权衡各种设计方式的利弊