小小程序员一点点成长为Architect

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolipengzhanshen/article/details/79225840

职业发展就是个眼界不断提高的过程,不管什么行业都是如此。
如何开阔自己的眼界呢?
读万卷书,行万里路,多见不同的人,多经历不同的事。

如何成为牛逼的程序员?
多看好代码,好代码是什么样的.
分辨出来哪些是好代码,哪些是不好的代码?
简洁 优雅 高效
可读性,高可用,可扩展性,代码复用(感觉自己代码都不沾边,哈哈)
现在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要写代码,保持创造力,奋斗在一线,理解兄弟们的辛苦
优化,持续不断的去优化。
优化产出,加人,做培训?

猜你喜欢

转载自blog.csdn.net/haolipengzhanshen/article/details/79225840