Sunday, January 17, 2016

Netflix的系统设计


NETFLIX, YOUTUBESPOTLIGHT系统设计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
改进效率,扩充性,鲁棒性
改进效率,扩充性,鲁棒性

Saturday, January 16, 2016

程序员能力的评判标准

程序员能力的评判标准
能力
LEVEL 1
入门
LEVEL 2
深度
LEVEL 3
广度
LEVEL 4
经验
LEVEL 5
预测
编程
能力
能够完成函数级开发
能够完成模块级开发
能够完成项目级开发
能够作为主程完成大规模系统的开发
能够前瞻性的预测研发的走势并作出准备
现场写代码

评分标准:
可读
有效
防御
多线程:能解决生产者消费者问题
网络:能解决爬虫问题
数据库:能够使用MySQLNoSQL
调试:发现并能够解决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

J2EE Phone Interview 9

Thursday, January 14, 2016

JSP Basic

金融基础知识

J2EE Phone Interview 8