2019-02-06 系统设计入门(增长面试经验)

请点击下文链接查看详细,本文章只是一个目录,具体内容去原文查看

系统设计入门

<p align="center">
<img src="http://i.imgur.com/jj3A5N8.png">


</p>

目的

学习如何设计大型系统。

为系统设计的面试做准备。

学习如何设计大型系统

学习如何设计可扩展的系统将会有助于你成为一个更好的工程师。

系统设计是一个很宽泛的话题。在互联网上,关于系统设计原则的资源也是多如牛毛。

这个仓库就是这些资源的组织收集,它可以帮助你学习如何构建可扩展的系统。

从开源社区学习

这是一个不断更新的开源项目的初期的版本。

欢迎贡献

为系统设计的面试做准备

在很多科技公司中,除了代码面试,系统设计也是技术面试过程中的一个必要环节

实践常见的系统设计面试题并且把你的答案和例子的解答进行对照:讨论,代码和图表。

面试准备的其他主题:

抽认卡

<p align="center">
<img src="http://i.imgur.com/zdCAkB3.png">


</p>

这里提供的抽认卡堆使用间隔重复的方法,帮助你记忆关键的系统设计概念。

随时随地都可使用。

代码资源:互动式编程挑战

你正在寻找资源以准备编程面试吗?

<p align="center">
<img src="http://i.imgur.com/b4YtAEN.png">


</p>

请查看我们的姐妹仓库互动式编程挑战,其中包含了一个额外的抽认卡堆:

贡献

从社区中学习。

欢迎提交 PR 提供帮助:

  • 修复错误
  • 完善章节
  • 添加章节

一些还需要完善的内容放在了正在完善中

请查看贡献指南

系统设计主题的索引

各种系统设计主题的摘要,包括优点和缺点。每一个主题都面临着取舍和权衡

每个章节都包含着更多的资源的链接。

<p align="center">
<img src="http://i.imgur.com/jrUBAF7.png">


</p>

学习指引

基于你面试的时间线(短、中、长)去复习那些推荐的主题。

Imgur

问:对于面试来说,我需要知道这里的所有知识点吗?

答:不,如果只是为了准备面试的话,你并不需要知道所有的知识点。

在一场面试中你会被问到什么取决于下面这些因素:

  • 你的经验
  • 你的技术背景
  • 你面试的职位
  • 你面试的公司
  • 运气

那些有经验的候选人通常会被期望了解更多的系统设计的知识。架构师或者团队负责人则会被期望了解更多除了个人贡献之外的知识。顶级的科技公司通常也会有一次或者更多的系统设计面试。

面试会很宽泛的展开并在几个领域深入。这会帮助你了解一些关于系统设计的不同的主题。基于你的时间线,经验,面试的职位和面试的公司对下面的指导做出适当的调整。

  • 短期 - 以系统设计主题的广度为目标。通过解决一些面试题来练习。
  • 中期 - 以系统设计主题的广度初级深度为目标。通过解决很多面试题来练习。
  • 长期 - 以系统设计主题的广度高级深度为目标。通过解决大部分面试题来练习。
短期 中期 长期
阅读 系统设计主题 以获得一个关于系统如何工作的宽泛的认识 :+1: :+1: :+1:
阅读一些你要面试的公司工程博客的文章 :+1: :+1: :+1:
阅读 真实架构 :+1: :+1: :+1:
复习 如何处理一个系统设计面试题 :+1: :+1: :+1:
完成 系统设计的面试题和解答 一些 很多 大部分
完成 面向对象设计的面试题和解答 一些 很多 大部分
复习 其它的系统设计面试题 一些 很多 大部分

如何处理一个系统设计的面试题

系统设计面试是一个开放式的对话。他们期望你去主导这个对话。

你可以使用下面的步骤来指引讨论。为了巩固这个过程,请使用下面的步骤完成系统设计的面试题和解答这个章节。

第一步:描述使用场景,约束和假设

把所有需要的东西聚集在一起,审视问题。不停的提问,以至于我们可以明确使用场景和约束。讨论假设。

  • 谁会使用它?
  • 他们会怎样使用它?
  • 有多少用户?
  • 系统的作用是什么?
  • 系统的输入输出分别是什么?
  • 我们希望处理多少数据?
  • 我们希望每秒钟处理多少请求?
  • 我们希望的读写比率?

第二步:创造一个高层级的设计

使用所有重要的组件来描绘出一个高层级的设计。

  • 画出主要的组件和连接
  • 证明你的想法

第三步:设计核心组件

对每一个核心组件进行详细深入的分析。举例来说,如果你被问到设计一个 url 缩写服务,开始讨论:

  • 生成并储存一个完整 url 的 hash
    • MD5Base62
    • Hash 碰撞
    • SQL 还是 NoSQL
    • 数据库模型
  • 将一个 hashed url 翻译成完整的 url
    • 数据库查找
  • API 和面向对象设计

第四步:扩展设计

确认和处理瓶颈以及一些限制。举例来说就是你需要下面的这些来完成扩展性的议题吗?

  • 负载均衡
  • 水平扩展
  • 缓存
  • 数据库分片

论述可能的解决办法和代价。每件事情需要取舍。可以使用可扩展系统的设计原则来处理瓶颈。

预估计算量

你或许会被要求通过手算进行一些估算。附录涉及到的是下面的这些资源:

相关资源和延伸阅读

查看下面的链接以获得我们期望的更好的想法:

系统设计的面试题和解答

普通的系统设计面试题和相关事例的论述,代码和图表。

与内容有关的解答在 solutions/ 文件夹中。

问题
设计 Pastebin.com (或者 Bit.ly) 解答
设计 Twitter 时间线和搜索 (或者 Facebook feed 和搜索) 解答
设计一个网页爬虫 解答
设计 Mint.com 解答
为一个社交网络设计数据结构 解答
为搜索引擎设计一个 key-value 储存 解答
通过分类特性设计 Amazon 的销售排名 解答
在 AWS 上设计一个百万用户级别的系统 解答
添加一个系统设计问题 贡献

设计 Pastebin.com (或者 Bit.ly)

查看实践与解答

Imgur

设计 Twitter 时间线和搜索 (或者 Facebook feed 和搜索)

查看实践与解答

Imgur

设计一个网页爬虫

查看实践与解答

Imgur

设计 Mint.com

查看实践与解答

Imgur

为一个社交网络设计数据结构

查看实践与解答

Imgur

为搜索引擎设计一个 key-value 储存

查看实践与解答

Imgur

设计按类别分类的 Amazon 销售排名

查看实践与解答

Imgur

在 AWS 上设计一个百万用户级别的系统

查看实践与解答

Imgur
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容