赞
踩
众所周知,系统设计在程序员面试中的占比仅次于coding,所以学好系统设计,心仪的offer基本稳了一半学习的过程中,我建议采用一个 7 步框架来解决每个问题。为了保持示例的真实性,我们将提出一个常见的面试问题:设计一个可扩展的服务,如 Twitter,看看每个步骤如何应用于设计 Twitter。
许多候选人认为系统设计访谈都是关于“规模”的,忘记把重点放在“系统”部分。在扩展之前,需要有一个可用的“系统”。
作为面试的第一步,你应该提出问题以找出问题的确切范围。设计问题大多是开放式的,他们没有一个正确的答案。这就是为什么在面试的早期澄清含糊不清的原因变得至关重要。花时间明确定义系统最终目标的候选人总是有更好的成功机会。
以下是设计 Twitter 的一些问题,在继续下一步之前应该回答这些问题:
1.谁可以发推文? (回答:任何用户)
2.谁可以阅读推文? (回答:任何用户 - 因为所有推文都是公开的)
3.推文是否包含照片或视频(答案:现在,只是照片)
4.用户可以关注其他用户吗? (回答:是)。
5.用户可以“喜欢”推文吗? (回答:是)。
6.用户提要中包含哪些内容(答案:你所关注的所有人的推文)。
7.按时间顺序提供推文列表吗? (回答:现在,是的)。
8.用户可以搜索推文(回答:是)。</
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。