架构师,是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。架构师不是一个人,他需要建立高效的体系,带领团队去攻城略地,在规定的时间内完成项目。
首先要搞清楚架构师主要做些什么
1 确认需求
架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求。
项目经理刘先生在受访时说:「架构师会与很多人沟通,例如开发人员,例如我们项目经理,有时甚至是用户本身。架构设计的目的很明确,目的是什么呢?挖掘用户需求。」
2 系统分解
在架构师认可需求规格说明书后,架构师已明确用户需求是是什么,这时候便看架构师的分解能力了。
通过100offer入职的全栈技术架构师周先生从「纵向分解」和「横向分解」和我们说明了系统分解是什么——
「一般分为纵向分解和横向分解,纵向分解是将整个系统分层,从而将整体系统分解成下一级的子系统与组件。横向分解是在系统分解成不同的逻辑层或服务后,对逻辑层进行分块,确定层与层之间的关系。」
3 技术选型
在系统分解后,架构师会最终形成软件整体架构,接下来,架构师的职责是技术选型。
「前端到底用瘦客户端还是富客户端呢?数据库是用MySQL还是MSSQL又或是Oracle呢?」架构师张先生在接受采访时说,「在了解用户需求后,分解完系统后,技术选型是非常重要的环节,提出各个方向,我再进行评估。不过,很多人都以为架构师是有决定权的,其实不是,架构师没有拍版的权力,决定由项目经理来做。 」
架构师在技术选型阶段会提供参考信息给项目经理,项目经理再从预算、进度、人力、资源等各方面情况来权衡,最终确认。
4 制定技术规格说明
如前文调查显示,架构师在项目开发过程中是「灵魂人物」,并且要具备协调组织能力和懂得人员分工。
在制定技术规格说明阶段,架构师要协调起所有的开发人员,架构师通常会用技术规格说明书与开发人员保持沟通,让开发人员能从各个视角去观测、理解他们负责的模块或者子系统,确保开发人员能够按照架构意图实现各项功能。
在了解架构师的职责后,再来看看架构师该具备什么能力才能成为一家公司中的「灵魂人物」。我们先来看一下调查数据——
37%的受访人认为架构师的设计能力最重要,技术实力重要度排在第二占了24%,沟通能力则排在第三,占比14%,管理能力在大多数架构师眼中并不是最重要的,仅占了7%。此次,我们详细分析排在前三的能力。
技术能力
技术能力,不用置疑肯定是最重要的。技术能力弱的架构不是一个好架构。所以,你需要知道所有主流技术的基本原理、应用场景,及快速解决问题的能力。
所以,架构师必须要有见识,所需知识面肯定是要不断拓展的。你需要清楚在什么样的场景用什么样的技术比较合适,并知道可能存在什么样的风险。来了需求,你脑袋是空的,不知道用什么技术这是最可怕的。
架构设计能力
这个可以表现为抽象能力、整体规划能力、及设计能力。你需要照在业务的角度进行系统分解、技术选型、架构搭建,以及规范制定。架构出来了至少可以满足近几年的发展,或者可以很方便对现有架构进行扩容。
有人说架构不需要懂业务,我面试过的就有明确表示不做业务架构。当然有方面的架构师,如中间件架构师,运维基础设施架构师等。但一般的后端架构师都是需要了解业务,不理解业务你如果进行系统分解,服务划分,及根据不同业务作出不同的架构?
技术都是为业务服务的,不站在业务的角度设计架构,那架构就是空谈。
沟通能力
这个看起来不是最重要的,其实也非常重要。作为一个优秀的架构师,你需要清楚的知道客户的需求,需要不断和需求人员进行沟通,以达到客户真正的目的。
不论是不是架构师,任何一个职场人,提高自己的沟通表达能力无疑是不可或缺的。有一句话怎么说的,领导就喜欢拍马屁的。做领导的大多不是技术特别牛的,但沟通能力肯定是一流的。
这3点肯定是架构师的核心,但不一定是每个架构师的标准。
国内做程序员,30岁左右就得转型,不然就会被嫌弃。不管是不是如此,大环境就是这样,程序员你能干到35已见天花板。
所以,程序员必须转型,管理职位数量有限,对性格、沟通表达能力有要求。所以转型架构师是首选,大家一起加油吧!希望下面导图可以对你们有帮助。
一、架构筑基主题解析:深入内核,直击故障,拒绝懵圈
二、开源框架源码解析:站在巨人肩膀,收获不一样的视野
三、高性能架构专题:成为互联网架构师,你要的都在这里
四、微服务架构:你还不知道微服务,怎么加薪升职
五、商城实战项目:撸起袖子干实事,项目经验的故事
六、设计模式专题:你的架构之路必须掌握