NETFLIX, YOUTUBE和SPOTLIGHT系统设计SNAKE分析 |
|||
宏观角度
|
微观角度
|
||
功
能
分
析
|
罗列功能
对所有功能进行排序
设计最重要的功能:播放电影
|
设计某个小模块
比如电影推荐
设计接口和方法
|
|
限
制
条
件
和
假
设
|
USER
|
·
Daily Active Users
·
Average Concurrent Users
·
Peak Users
·
Max Peak Users in 3 month
|
对方法的调用频率进行计算
计算QPS
计算需要多少server达到所需QPS
|
TRAFFIC
|
·
Traffic per user 3mpbs
·
Max Peak Traffic in 3 month
|
||
MEMORY
|
·
Memory per user 10k
·
Max Daily Memory if double in 3 month
|
||
STORAGE
|
·
Total Number of movies
·
Calculate total storage usage considering
different quality of movies
|
||
应
用
架
构
和
算
法
|
应用设计模式的知识设计系统Service结构 (MVC架构)
|
算法和数据结构
|
|
数
据
层
设
计
|
Model DAO不同文件不同数据库选择 (MySQL 和
MongoDB 以及 File)
|
改进算法和数据结构提高QPS
|
|
系
统
演
化
|
改进效率,扩充性,鲁棒性
|
改进效率,扩充性,鲁棒性
|
|
Sunday, January 17, 2016
Netflix的系统设计
Saturday, January 16, 2016
程序员能力的评判标准
程序员能力的评判标准
|
|||||
能力
|
LEVEL 1
入门
|
LEVEL 2
深度
|
LEVEL 3
广度
|
LEVEL 4
经验
|
LEVEL 5
预测
|
编程
能力
|
能够完成函数级开发
|
能够完成模块级开发
|
能够完成项目级开发
|
能够作为主程完成大规模系统的开发
|
能够前瞻性的预测研发的走势并作出准备
|
现场写代码
评分标准:
可读
有效
防御
|
多线程:能解决生产者消费者问题
网络:能解决爬虫问题
数据库:能够使用MySQL和NoSQL
调试:发现并能够解决BUG
优化:能在时间和空间维度解决问题
评分标准:
可以举出实例,不需要都会,
至少要在2点上有深度
|
技术调研:介绍调研的案例
代码整合:介绍整合开源内部库的案例
突发问题:介绍解决突发问题的案例
评分标准:
体现项目级别
至少在2点上有特色
|
介绍你作为主程最具挑战的一个项目。
评分标准:
案例支持技术点
强调整体的把控能力
|
作为项目的主程,你下一步会怎么做?
|
|
设计
能力
|
通过算法和数据结构解决问题
|
能够设计基本的系统
|
能够设计大规模分布式系统
|
参与真实的系统设计并贡献重要力量
|
能够前瞻性的预测架构的走势并进行准备
|
字符串处理算法题
|
用面向对象方法设计消息系统
|
设计日活跃用户1000万的消息系统
|
介绍你参与的最复杂的架构设计。
有哪些经验和改进的思路?
|
作为首席架构师,你下一步会做什么?
|
|
理解
学习
能力
|
能够快速抓住对方沟通的重点
|
能主动学习需要掌握的技能
|
从更大的维度补充需要的知识
|
具有钻研突破难题的经验
|
有清晰的职业规划
|
能否一遍听懂面试官的问题
|
你进入上家公司的时候是如何上手的
|
你在上家公司有哪些提升,是如何提升的?
|
你在上家公司遇到了哪些挑战?
是怎么解决的?
如果重新来一次,有什么更好的方案?
|
你的职业规划是什么?
你希望提升的方向是什么?
为什么来我们公司?
|
|
总结
表达
教学
能力
|
能够用简约的话表达重点
|
能够把自己的知识教给身边的人
|
能从对方的角度讲问题(跨专业)
|
具有对公共分享的经验
|
沟通前瞻性,
能够预知对方的需求和疑问点,
并且主动进行沟通
|
介绍自己你的亮点和需要提高的地方
|
你是如何带新人的?
如何让他们融入团队?
|
如何解决意见不一致?
挑战别人的答案。
|
在公司和部门分享案列
|
自己能够通过直觉感知。
|
|
|
SCORE
|
LEVEL
|
ALI
|
BAIDU
|
TENCENT
|
|
8-9
|
L1
|
P5
|
T4
|
T1.2-T2.2
|
|
10-13
|
L2
|
P6
|
T5
|
T2.2-T3.1
|
|
14+
|
L3+
|
P7+
|
T6+
|
T3.1-T3.2
|
Friday, January 15, 2016
Thursday, January 14, 2016
Subscribe to:
Posts (Atom)