职业发展就是个眼界不断提高的过程,不管什么行业都是如此。
如何开阔自己的眼界呢?
读万卷书,行万里路,多见不同的人,多经历不同的事。
如何成为牛逼的程序员?
多看好代码,好代码是什么样的.
分辨出来哪些是好代码,哪些是不好的代码?
简洁 优雅 高效
可读性,高可用,可扩展性,代码复用(感觉自己代码都不沾边,哈哈)
现在github上好代码这么多,值得自己学习的代码更多。
精通
像刚哥说的,多去了解下和自己工作相关的.
做前端的,多去了解下后端是如何响应请求的
做后端的,多去了解下前端是如何展示数据的
了解下数据库是如何应对我的场景请求的,是如何设计的?
自己的程序是如何运维的
become a good coder
精深
掌握技术细节
语言细节
类库细节
算法细节
运行环境细节
精明(非技术层次)
准确的理解需求
评估工作量
判断任务优先级
**向更优秀的人学习,code review
学习更优秀的代码**
当业务越来越复杂时,将会超过个人的能力,个人能够实现的软件复杂度是有上限,所以需要将业务分为多个模块,团队中的每个成员负责各自的模块开发和维护,大家分工合作。
**架构师的眼界
scalability
人的scalability
量的scalability**
zookeeper是干什么的?
考虑程序对性能稳定性的影响
Be A Architect
理解业务需求
解决宏观问题
提炼通用组件
设计协作方式
Be A Good Architect
一、取舍
需求和资源
时延和吞吐量
什么是当前业务最需要的?在线系统优先保证延迟稳定性,离线系统有限保证吞吐量
二、前瞻性
架构的调整周期较长,不合适的代码做重构,如何来做。
未来访问量增长,如并发连接数增长,qps增长
新业务
四、抽象
1.避免过早陷入细节
2.分层,将各个组件的角色定义下来,然后分块来思考。
3.复用
五、容错
架构师碰到的问题比程序员负责的问题要复杂的多
设计错误处理解决方案
数据丢失,备份方案
如果出现故障,如何去恢复,尽量不修只换。
要不要用容器来做云平台?业务上有前瞻性的判断
多想优秀的架构师学习,总结出来新思路。
多看书,扩宽自己的思路
架构师是个好的程序员
架构师要解决的问题:
更大的软件规模
更不可靠的底层环境
更不确定的需求变化
CTO
用什么技术来实现业务->用什么技术来发展业务
google的分布式论文,亚马逊发布了aws云计算
16年发布了人工智能,人工智能和大数据会对人的生活产生什么样的影响。
自然语言处理
机器学习
大数据
云平台
个性化推荐
知识图谱
等等
CTO要写代码,保持创造力,奋斗在一线,理解兄弟们的辛苦
优化,持续不断的去优化。
优化产出,加人,做培训?