架构师主要是做什么的?

Misaya7914


这里以软件架构师为例说明,软件架构师是从程序员一步步干起来的,也是大多数程序员梦寐以求的。混到架构师级别,一般需要的综合能力比较强,需要做的事情比程序员也要多。

确认需求

首先,架构师需要彻底弄清楚产品需求,才能进行下面的工作。这需要架构师和产品经理、业务需求方不断地沟通,挖掘用户需求,搞清楚用户到底需要的是什么,能够做到对现有的需求整理透彻,并且具有下一步用户想要什么的判断能力。

系统分解

当需求确定后,架构师需要将用户产品需求转换为软件需求。在构建软件系统模型的时候,需要对系统进行分解,比如将整个系统进行纵向分解,分解成各组件与子系统;比如还可以进行横向分解,将系统分解成不同的逻辑层或服务后,对逻辑层进行分块,确定层与层之间的关系。

技术选型

这个阶段考验的是架构师的架构能力、综合技术能力、对前沿技术的掌握能力等。


系统分解后,需要进行技术选型。

比如前端是用vue、React还是Angular;

比如后端框架是选择SpringCloud全家桶还是使用阿里系dubbo组合拳;

比如缓存是用Redis还是其他;

比如数据库是用关系型数据库还是使用noSql;

比如线上节点需要部署多少;

。。。。。

而这一切都要基于用户需求、用户使用量等。并不是根据自己的爱好随意选择的,否则线上出现了问题导致系统崩溃,这是不能容忍的。

制定技术规范

“约定大于配置”,程序员水平不一,编码风格千秋,所以要制定一套开发规范,这样对进度的把握以及以后的运维都是非常有好处的。

要和涉及的程序员保持沟通,以确保他们在自己的开发任务下领会到架构师的设计意图。

指导员

要对开发过程中程序员遇到的问题做到及时的沟通指导,遇到的技术难题要随时攻关。

布道师

软件行业发展日新月异,新技术的诞生说来就来,所以架构师要时刻保持对新技术的热情,善于钻研新技术,并且能够将新技术引入到当前的团队中。



当然,架构师的职责不仅上面所述,还有其他的,比如汇报工作等。

所以对于一个合格的架构师,他们的综合能力需要全面。


残缺的孤独君


架构师其实有很多种的,有业务架构,技术架构之分。业务架构很好理解了,就是当前的业务为谁服务,都需要做什么,满足什么需求等等这样的定义。技术架构其实还有软件架构,网络架构等等。

从你的提问来看,我们暂且认为你说的是软件架构师。那么软件架构师都需要做什么呢?最主要的,他先要了解业务,而且是深入的了解业务,包括业务的使命,所有者的期望,使用者的期望,业务未来的发展方向等等。当各方面了解清楚后,才能进行技术方面的工作。这里面包括了系统怎么划分模块和服务,各个模块和服务应该用什么语言,什么框架来实现。各个服务间调用的形式是http还是二进制,数据库怎么选择,数据表怎么定义等等这些吧,在架构设计中还要考虑到系统未来的扩展和维护,当然也要包括日志,监控等等周边的非功能性需求。而且还要保证自己的技术选型和架构设计师可实现的,当前团队不会有太大的阻力。还要识别系统开发过程中可能出现的风险,怎么规避,怎么解决。

理论上来说,架构师在编码过程中还需要时刻与开发人员沟通,解决问题,升级设计方案等等。其实架构师就是开发的领头人,描述清楚方向和实现的方法,并且保证开发人员在自己规定的范围内解决或实现业务。


分享到:


相關文章: