这里以软件架构师为例说明,软件架构师是从程序员一步步干起来的,也是大多数程序员梦寐以求的。混到架构师级别,一般需要的综合能力比较强,需要做的事情比程序员也要多。
确认需求首先,架构师需要彻底弄清楚产品需求,才能进行下面的工作。这需要架构师和产品经理、业务需求方不断地沟通,挖掘用户需求,搞清楚用户到底需要的是什么,能够做到对现有的需求整理透彻,并且具有下一步用户想要什么的判断能力。
系统分解当需求确定后,架构师需要将用户产品需求转换为软件需求。在构建软件系统模型的时候,需要对系统进行分解,比如将整个系统进行纵向分解,分解成各组件与子系统;比如还可以进行横向分解,将系统分解成不同的逻辑层或服务后,对逻辑层进行分块,确定层与层之间的关系。
技术选型这个阶段考验的是架构师的架构能力、综合技术能力、对前沿技术的掌握能力等。
系统分解后,需要进行技术选型。
比如前端是用vue、React还是Angular;
比如后端框架是选择SpringCloud全家桶还是使用阿里系dubbo组合拳;
比如缓存是用Redis还是其他;
比如数据库是用关系型数据库还是使用noSql;
比如线上节点需要部署多少;
。。。。。
而这一切都要基于用户需求、用户使用量等。并不是根据自己的爱好随意选择的,否则线上出现了问题导致系统崩溃,这是不能容忍的。
制定技术规范“约定大于配置”,程序员水平不一,编码风格千秋,所以要制定一套开发规范,这样对进度的把握以及以后的运维都是非常有好处的。
要和涉及的程序员保持沟通,以确保他们在自己的开发任务下领会到架构师的设计意图。
指导员要对开发过程中程序员遇到的问题做到及时的沟通指导,遇到的技术难题要随时攻关。
布道师软件行业发展日新月异,新技术的诞生说来就来,所以架构师要时刻保持对新技术的热情,善于钻研新技术,并且能够将新技术引入到当前的团队中。
当然,架构师的职责不仅上面所述,还有其他的,比如汇报工作等。
所以对于一个合格的架构师,他们的综合能力需要全面。