前言:系统架构设计师需要具备什么能力?这个其实不太好回答,在招聘网站上,不同的公司对架构师要求都不一样,公司的业务不同对架构师能力的侧重点也有不同。但基本要求的能力至少满足以下几点:
1、负责公司系统架构的设计、研发工作
必须在某一特定领域有自己深刻的理解和实践经验,比如在java领域,就应该熟悉各种开源框架,并能在开源框架上开发各种系统功能,比如系统安全,与异构系统通信协议、高并发下各种缓存、集群、分布式。架构师应该是在微观上能解决各种系统异常的人,宏观上能为公司的发展提供可匹配的架构支持(架构水平可扩展)。
2、能够制定技术规范,能够对开发人员在技术上提供指导
所以架构师必须在技术上有一定权威的人,必须是团队的技术核心人物,能够根据最佳实践制定技术规范,并要求技术人员按照规范实施。如果开发人员,尤其是新员工不能理解如何使用架构进行开发的时候,架构师应该组织对大家培训,开发相应的demo,交付大家使用,必要时,必须阐明架构为什么这么设计的缘由。试想,如果在关键的技术决策的时候,没人care你的想法,那么你真的具备架构师的能力吗。
3、组织大家完成技术攻关,对核心的技术选型有自己见解,能识别系统风险点,也能识别系统的优化点
在关键的技术难点需要攻关的时候,架构师应该冲在前头。有经验的架构师,应该在系统设计之初就应该预想到可能的技术难题,并提前做技术研究。所以架构师必须知识面比较广,能够对不同的技术选型有自己的判断,并能对不同的技术组合做出权衡,识别各种技术选型与组合的风险,对已经运行的系统,应该持续优化,既能够凭借自己的经验识别系统的优化点,也善于运用各种工具,定量化分析系统的性能瓶颈,并组织技术小伙伴一块解决。
4、业务理解能力与一定的项目管理能力
上面说的三点,想必立志成为架构师的小伙伴都能明白。但是在技术上有追求的架构师对业务、对项目管理天生有一定的排斥感,因为这两样都必须和人打交道,跟人打交道对架构师来说效率低下(其实,很多架构师都偏内向,不喜欢也不善于和人打交道),不如敲代码那么酣畅淋漓。所以,直觉上认为,执着于做一个架构师是不需要以上两方面的能力,把架构做到极致、把技术做到极致就够了。其实,技术是服务于业务的,你的用户只有两千人,你做个能应对两千万的人架构那只能是浪费资源。对业务的理解会有助于架构师在更高层面上去理解架构,做出的架构就比较适用,后期也能够对业务做到随需应变。
架构师在工作中,往往会主动或者被动参与些开发管理工作,比如工作任务分配和预估项目进度,因为往往理解技术人员专长的人是架构师(或是技术经理)、架构师能把合适的技术任务分给合适的人。或者即使不是架构师来分配任务,一般项目经理也会征求架构师的意见。比如开发了新的架构,需要给大家培训。比如系统要和其他部门系统通信、集成,需要跨部门的协作。各种各样的场景会将架构师卷入一些项目管理中,从一定职业生涯规范考虑,学习或者参与一定的项目管理,能从更宏观的层面去看一个项目的发展,而不单单将自己局限在技术上去看问题。
当然,架构师还要求有很强的自学能力、分析能力、发现问题、解决问题的能力。在互联网时代,还需要写作、沟通、培训的能力,所谓“教是最好的学”,将自己的架构知识传播出去,既能帮助别人,同时加深自己的理解,还能认识到这个行业里志同道合的人
------------------------文字转载自网络
更多备考资料和学习经验请移步公众号:考试学习君
联系客服