🗂 目录

系统设计面试指南

May 23, 2020 • 预计阅读时间 2 分钟

系统设计的关键点在于知识面广 + 考虑全面,这需要经验做支撑,但通过多学习案例、套路是可以弥补的

学习资料

经典案例

突击 or 有架构经验的话,我觉得只要认真研读经典设计问题即可:

问题  GitHub  Youtube  web
Twitter 时间线和搜索,Facebook feed解答花花酱
Tech Dummies Narendra L
educative: Designing Twitter
educative: Designing Facebook’s Newsfeed
Chat:WhatsAppGaurav Sen
图片分享:Instagram解答Gaurav Seneducative
电商:Amazon,eBay,Walmart解答codeKarle
视频:YouTube,Netflix花花酱
Gaurav Sen
Tech Dummies Narendra L
educative
视频会议:ZoomcodeKarle
Uber 后台Tech Dummies Narendra LUber Architecture and System Design
educative
云存储服务:Dropbox,Google Doc,AWS S3Dropbox
Google Doc
S3
educative
Tiny URL:Pastebin.com,Bit.ly解答
Tech Dummies Narendra Leducative
网页爬虫解答Tech Dummies Narendra Leducative
API Rate Limiter解答Gaurav Seneducative
为一个交易平台设计限价订单(limited order book)解答

答题技巧

  • 和面试官多沟通,给出任何细节前多问,沟通能力也是系统设计的考察点
  • 由于系统设计可以多种多样,先确立一个简单解,以此为基础进行扩展
  • 进行扩展时,一方面要了解需求,一方面要提出如此设计的原因和所做的 trade off

答题策略

九章总结的 4S 分析法:

-   Scenario 场景:需要设计哪些功能,到什么程度?
    -   who will use
    -   how many will use
    -   usage pattern
    -   use case not covered
    -   estimated throughput
    -   estimated latency
-   Service 服务:将大系统拆分为小服务
    -   api for read/write scenarios
    -   schema
-   Storage 存储:数据如何存储与访问
    -   data size
    -   read/write ratio
    -   read/write traffic
    -   rdbms/nosql
-   Scale 升级:解决缺陷,处理可能遇到的问题
    -   scaling the algorithm
    -   scaling the individual component
    -   memory cache
    -   DNS, CDN, reverse proxy, load balancer, ...
    -   async: message queue, back pressure, time & order, ...
    -   communiction: tcp, udp, rest, rpc, ...

技术点参考

  云原生时代|分布式系统设计知识图谱(内含 22 个知识点) 分布式系统设计知识图谱

展开的话范围相当的广,只能平时积累,逐个突破。


   我理解的架构 & 架构师(兼谈微服务)

   淘宝服务端高并发分布式架构演进之路 ⏤ 互联网应用的典型架构,架构是互通的,了解后至少懂得大方向。

程序员成长面试指南系列

  上一篇:股票新手之基础入门(2021.2更新)

  下一篇:Jackson 常用注解

comments powered by Disqus