阶成为架构师是大多数程序员们的梦想,架构师从广义上可分为软件架构师、系统架构师,软件架构师是程序员最容易突破、最可能进阶的一条职业发展路径,本篇重点分享架构师必备的6大能力。
首先,我们先从整体来看架构师这个岗位。
架构师,是一个既需要掌控整体又要洞悉局部瓶颈,并依据具体的业务场景给出解决方案的团队领导型人物,他需要参与项目开发的全部过程,包括需求分析、架构设计、系统实现、集成、测试和部署各个阶段,负责在整个项目中对技术活动和技术说明进行指导和协调。
架构师应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数,挑选适合的技术架构和技术方案。
1、确认需求与拆分系统
在项目开发过程中,架构师需要依据用户需求,将完整的系统拆分为子系统和组件,形成不同的逻辑层或服务,确定各层的接口、层与层相互之间的关系,对整个系统分层进行“纵向”分解,对同一逻辑层分块进行“横向”分解。
2、技术选型
通过对系统的一系列的分解,最终形成了软件的整体架构,依据整体架构需要进行技术选型。
例如:天猫这样的大型分布式网站,需要从前端(CDN、负载均衡),再到中间应用层端的缓存集群、消息集群、文件存储集群等的选型,再到后端数据库(NoSQL、MySQL、Oracle等)的选型,你需要很清楚每一种技术的优劣势和应用场景,以及未来面临的挑战和风险。然后从业务的角度(预估访问量和业务变化),结合起来进行选型。
3、系统分解
系统分解类似实际项目中的概要设计、详细设计,业务逻辑划分、子系统与主系统的关联、数据库的设计,再到应用端业务流程等,从技术的角度完整的拆解业务,把控好技术的细节。
4、制作技术规格说明
在整个研发过程中始终保持与开发人员保持沟通,以保证开发者依照原定的架构意图去实现各项功能。
备注:图表仅为抽样数据,仅供参考
我们来细说下排名前三的架构师必备能力:设计能力、技术能力、沟通能力。
5、 架构能力
架构是架构师洞察内在结构、原则、规律与逻辑的过程,架构师要做到清晰理解系统、简洁描述,除此之外,一个架构师还必须具备极强的分析能力,要做到根据产品宗旨和目标,分析清楚产品定位、产品业务,再整合利用现有的技术领域,找出最佳方案,实现产品概念。
6、 技术硬实力
众所周知,架构师是团队中的技术权威,需要同时具备技术的深度和广度,至少精通多门技术,且技术广度的要求高于技术深度的要求,这样才能更加深入的理解架构相关工作原理,也可以拉近和技术团队的距离,并形成影响力。