架构师是做什么的?架构师和程序员的区别在哪里?

TheDisguiser 2020-03-22 19:37:34 java常见问答 3807

一些小伙伴问我,一直不能理解架构师和程序员的区别在哪里,明明都是同样的技能,那么,架构师和程序员的区别到底在哪呢?今天就来和小伙伴们聊一聊。

架构师,顾名思义,就是设计师或结构设计者。

Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量、连接池,线程池。

架构师是从程序员一步步干起来的,也是大多数程序员梦寐以求的。混到架构师级别,一般需要的综合能力比较强,需要做的事情比程序员也要多。确认需求首先,架构师需要彻底弄清楚产品需求,才能进行下面的工作。这需要架构师和产品经理、业务需求方不断地沟通,挖掘用户需求,搞清楚用户到底需要的是什么,能够做到对现有的需求整理透彻,并且具有下一步用户想要什么的判断能力。

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

技术选型:这个阶段考验的是架构师的架构能力、综合技术能力、对前沿技术的掌握能力等。系统分解后,需要进行技术选型。比如前端是用vue、React还是Angular;比如后端框架是选择SpringCloud全家桶还是使用阿里系dubbo组合拳;比如缓存是用Redis还是其他;比如数据库是用关系型数据库还是使用noSql;比如线上节点需要部署多少;而这一切都要基于用户需求、用户使用量等。并不是根据自己的爱好随意选择的,否则线上出现了问题导致系统崩溃,这是不能容忍的。制定技术规范“约定大于配置”,程序员水平不一,编码风格千秋,所以要制定一套开发规范,这样对进度的把握以及以后的运维都是非常有好处的。

要和涉及的程序员保持沟通,以确保他们在自己的开发任务下领会到架构师的设计意图。指导员要对开发过程中程序员遇到的问题做到及时的沟通指导,遇到的技术难题要随时攻关。布道师软件行业发展日新月异,新技术的诞生说来就来,所以架构师要时刻保持对新技术的热情,善于钻研新技术,并且能够将新技术引入到当前的团队中。

架构师和程序员的区别就好比将军和士兵,士兵只需要冲锋陷阵就行了,而将军则需要掌控全局,排兵布阵,一夫当关,万夫莫开。再好的士兵也不一定能当将军,一位无双的将军肯定是一位勇猛的士兵。

以上就是整理的关于架构师和程序员的区别的知识,更多相关内容,请持续关注本站。