0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

架构师是干什么的

工程师人生 来源:工程师吴畏 2019-04-04 16:28 次阅读

一、先说下大家对架构师认识的误区

1、架构师不是不食人间烟火,不是只在一个人的隔间里设计架构,而是需要和产品方,需求方,程序员等各路人马打交道。

2、架构师偏重于技术,这个不假,但绝不能是技术完美主义者,因为任何产品或网站的架构都充满着妥协。

3、高级程序员和架构师的界限并不明显,不是哪天高级程序员学好了什么课程,掌握了一门技术就自动升级到架构了,有些要求不高的项目里,甚至由高级开发来充当架构的角色。

4、架构师并不是门门都精通,而是得知道某个需求要点可以有哪些实现方案,然后会根据当前的预算,人员等情况合适地选择适合当前项目组的。

5、对架构师而言,不是什么都是得自己设计,比如实现负载均衡时,不可能让架构师用java实现一套解决方案,而是至少选用哪种组件,比如nginx,能在项目中把这套组件搭建起来。

6、架构师设计出来的,是产品,未必是艺术品。架构师设计出来的产品可能仅仅能满足流量等的需求,可能只能远观,近看可能就一团糟了。但公司恰恰是要结果的,而且产品开发的周期会很紧,所以最终上线的架构也就只能是应付当前的需求。

二、高级开发升级到架构师的必要条件

在很多场景里,高级开发只有具备了如下的条件,才有资格升级到架构师,这里我是拿java架构举例。

1、Java Core以及Java web的基本技能,比如集合,多线程,SSM框架就不说了,这个是必须要掌握的。

2、至少能会在linux上看日志,如果可以,最好具备在linux上部署和运行程序的能力。

3、具备一定的调优能力,比如需要能通过看日志,进行JVM内存调优,或者通过看执行计划等方式,进行SQL调优。

4、得了解设计模式,可以不用精通,但至少得知道,在哪种场景里,可以通过哪种模式来优化结构。

5、这个是关键的一条,考虑问题时,得摆脱“单机版”的局限,在知识储备里,得包含负载均衡,消息队列,数据库集群等基于分布式的知识点。

6、和人打交道时,至少没障碍,至少得能清晰地表达出自己的意思。

三、高级开发不会自动升级到架构,除非认真准备过

在大多数公司里,会有高级开发升级到架构师的案例,我也见过不少高级开发通过跳槽,成为架构师的案例。但机会只给有准备的人。

如果高级开发一直关注手头上的事情,工作之余也不学习,那可能就无法完成升级了,而且这个升级的步骤要比初级开发升高级的要难得多,为什么呢?

公司一般都是需要具备有过实践经验的架构,而高级开发一般是通过跳槽来完成升级的,但如果你当前是高级开发,估计很难有实践架构的机会,所以很难通过架构师的面试,没有架构师的实践机会,那么如何升级呢?这似乎是个死循环。

下面说下我见过的完成升级的捷径:

1、如果你所在的公司是互联网公司,那么高级开发多少会接触些分布式高并发架构的知识,那么高级开发在平时可以多观察多积累,等到组内架构师离职了,一般就有机会了。

2、有些公司还是用传统的技术,比如还是用单机版的SSM,甚至用JDBC+java的开发模式,在这类公司里,升级似乎有些难,但不是不可以。在这里公司里干活的高级开发,平时一定得多看相关书籍,看的时候围绕一个主题:如果让我设计一个能满足双十一流量的架构,我该怎么做?再具体下,如果让我设计一个高并发流量的秒杀系统,我又该怎么做?其实很多架构面试题就围绕这两方面。

经过学习,至少高级开发能有架构师的技能了,至于这类高级开发如何在简历中写架构方面的经验,别问我,我不能说,或者是,大家可能都知道,但我不可说。

四、架构师必备的技能(再说升级的方式)

1、围绕着刚才说的,实现一套能满足高并发的系统,那么得了解负载均衡,限流,模块间的消息队列,缓存,热备冗余,数据库集群等知识。

其实对高级开发而言,学习本身不是难点,关键是不知道该学什么,以及每个要点该学到什么程度?这里,如果你要面试成功,那么每个知识点知道个大概即可。

2、具体到学习路线,目前我知道的有阿里路线,我也见过有人把spring cloud各组件了解透,然后完成升级的案例。

3、对我而言,我升级时是看《亿级流量网站架构核心技术》这本书,其中涵盖的知识面比较全,然后我再根据其中给出的知识体系逐一再深入,比方说,我看了其中有提到用hystrix做限流,我就再看其它资料,深入了解下这个组件的配置等详细用法。总之,先看面,再深入点,随后再根据各组件,组装一个能应付高并发的系统。

4、实践很重要,而且在实践中别怕犯错误,但犯了错得及时总结。

可以这样说,架构师开始几个设计的项目,一定是惨不忍睹的,一定会不停地重构。所以,在架构师的实习阶段,加班是常有的,甚至可能会不断被领导说,设计出来的产品也有可能被抱怨。

这时一定得坚持,然后不断反思下,同时在设计架构时,一定能接触到各类相关的知识,这样架构师就慢慢成长了。

5、这个是比较容易忽视的一点,架构师一定得会沟通,这往往也是升级的瓶颈。

架构师得和产品沟通,以得到本系统的需求,同时得和需求方协调,在有限的时间里一定做不到面面俱到,一定得有所放弃,这个得事先谈好。然后再设计,拼接组件,然后得和开发或开发经理沟通,别让开发误解自己设计架构时的本意。

我目前不是架构,还在升级的路上,根据我接触到的架构师的升级经验,以及我本身的升级体会,在这里来总结下架构师的技术升级要点:用两个字来描述:集群,用三个字:分布式,再用多点的文字:把海量的流量和数据合理分摊到数量合适的机器上。

想明白这点,后面就能知道该学哪些了,比如流量分摊时得负载均衡,存储海量数据时得靠数据库集群,或分库分表,为了防止单点失效,得设计冗余系统,系统间通讯时得用消息中间件,不能让每次请求都走后台,所以可以搭建缓存,单个缓存容易失效,所以可以搭建分布式缓存,为了监控性能,所以得上一些监控措施,比如监控JVM,监控数据等的,为了等看日志,所以得上一些日志组件。等等。

上述知识点掌握后,再组装起来,比如搭建一个秒杀系统以检验自己的学习成果。

五、架构师平时干什么?

1、开会,开需求会,开设计评审会等。大概会占到平时工作的30%到50%。

2、如果不是资深架构或技术总监,那么未必会设计一套全新的架构,往往是在现有基础上改进,比如做扩容,分库分表,上新的日志监控系统。这方面,架构师往往会做个案例,比如在一台linux上搭个日志系统,把步骤写清楚,让开发依样画葫芦。对于资深架构而言,可能得重头开始设计,或者作出调整技术组件等的决定,这一般也先在部分系统或部分机器上做试验。

3、解决技术问题。这些问题未必是架构级别的,但只要是高级开发解决不了的问题,架构一般都得上,谁让架构是大牛呢?如果是架构组件方的问题,比如配置或部署方面的问题,架构师更得上。

4、但最重要的是学习,比如想,当前流量是2000每秒,到了5000时我该怎么办?然后再找些机器搭些组件来实验一下。

六、架构师更多的是和人打交道

和技术打交道容易,和人打交道难,因为一百个人会有一百个想法。

所以说,除了技术之外,架构师还得具备如下的能力:

1、能通过交流展示自己的想法。

2、在各方利益不一致时得会协调妥协,其实这也得靠各方沟通。

3、管理团队的能力。

4、充分倾听别人想法的能力。

所以说,很多公司的架构师绝不是“两耳不闻窗外事”,当然这类架构师也有,但这类绝对是大神级别的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 架构师
    +关注

    关注

    0

    文章

    47

    浏览量

    4683
收藏 人收藏

    评论

    相关推荐

    综合配线柜是干什么的

    综合配线柜(也称为综合布线柜或综合布线系统配线柜)是一种在多个领域中发挥关键作用的设备。以下是关于综合配线柜的详细介绍: 一、主要作用 集中管理与控制: 综合配线柜能够集中管理和控制网络或电力系统中的线缆和连接设备。通过将各种线缆(如网线、光纤、电话线、电源线等)集中在一个柜子中,可以方便地进行线缆的接入、分配、调度和维护,提高管理效率和便捷性。 保护线缆和设备: 综合配线柜提供了对线缆和连接设备的物理保护。合
    的头像 发表于 03-11 11:08 67次阅读

    gtta光缆是干什么的

    GTTA光缆是一种特定类型的通信光缆,主要用于满足光学、机械或环境的性能规范,并实现光信号的传输。以下是对GTTA光缆的详细解释: 一、主要用途 GTTA光缆作为宽带接入的物理平台,在通信网络中扮演着重要角色。它主要用于室外通信,如馈线和配线等,特别是在接入网中。此外,它还可以用于管道、非金属自承架空等常规敷设方式,以及楼道内竖井布线。 二、结构特点 缆芯:光缆的缆芯由一定数量的光纤组成,这些光纤按照一定方式排列并形成缆
    的头像 发表于 03-06 10:21 74次阅读

    如果需要使用DMD进行成像控制,需要用到哪些部件?

    我想问一下,如果需要使用DMD进行成像控制,需要用到哪些部件?是只需要控制板和DMD芯片么?那么评估模块是用来干什么的呢?
    发表于 02-28 06:40

    一个优秀的嵌入式软件“架构师” — AWFlow

    在大型项目的软件开发过程中,模块化开发面临着接口设计不合理、代码冲突以及模块间不兼容等问题,导致团队协作效率低下。为了解决这些问题,嵌入式软件“架构师”—AWFlow,应运而生!在大型项目
    的头像 发表于 02-10 16:44 260次阅读
    一个优秀的嵌入式软件“<b class='flag-5'>架构师</b>” — AWFlow

    英特尔前Xeon首席架构师加盟高通

    高通公司近日宣布,英特尔前Xeon服务器处理器首席架构师Sailesh Kottapalli已正式加入高通,并担任高级副总裁一职。此举被视为高通进军数据中心CPU市场的重要一步
    的头像 发表于 01-15 15:30 296次阅读

    PLM项目管理系统主要干什么?制造业企业的PLM应用与效益

    在制造业的数字化转型浪潮中,PLM(Product Lifecycle Management,产品全生命周期管理)项目管理系统扮演着至关重要的角色。那么,PLM项目管理系统主要干什么呢?简而言之
    的头像 发表于 12-04 11:19 927次阅读
    PLM项目管理系统主要<b class='flag-5'>干什么</b>?制造业企业的PLM应用与效益

    TLC555这个电路的二极管是干什么用的,它是从哪来的?

    就这个电路二极管不知道干什么用的,它是从哪来的? 仿真结果跟官方的不一样
    发表于 11-08 15:37

    电视上的usb是用来干什么的

    电视上的USB接口是一个非常实用的功能,它允许用户通过USB设备(如U盘、移动硬盘等)直接播放存储在这些设备上的多媒体文件,如视频、音频、图片等。此外,USB接口还可以用来为电视提供额外的功能,比如连接游戏手柄、键盘、鼠标等外设,或者用于固件升级等。 一、电视USB接口的用途 播放多媒体文件 电视上的USB接口最常用的功能就是播放存储在USB设备上的多媒体文件。用户可以将自己喜欢的电影、电视剧、音乐、图片等文件存储在U盘、移动硬
    的头像 发表于 10-12 10:06 5241次阅读

    LM318 COMP管脚是什么引脚,干什么用的?

    LM318 COMP 管脚是什么引脚,干什么用的,PSPICEFORTI 里面没有318的COMP管脚在怎么应用
    发表于 07-31 07:45

    中级自动驾驶架构师应该学习哪些知识

    随着自动驾驶技术的成熟,对系统架构师的需求逐渐增加。自动驾驶系统架构师负责设计整个系统的结构、组件、接口和数据流;需要协调不同领域的专业知识,确保系统的可靠性、安全性和性能。总之,自动驾驶系统架构师
    的头像 发表于 06-20 21:47 388次阅读

    初级自动驾驶架构师应该学习哪些知识

    随着自动驾驶技术的成熟,对系统架构师的需求逐渐增加。自动驾驶系统架构师负责设计整个系统的结构、组件、接口和数据流;需要协调不同领域的专业知识,确保系统的可靠性、安全性和性能。总之,自动驾驶系统架构师
    的头像 发表于 06-20 21:45 433次阅读

    音圈电机是用来干什么的

    音圈电机(Voice Coil Motor,简称VCM)是一种利用电磁原理将电能转换为直线运动的电机。它广泛应用于各种精密定位系统和驱动设备中,如硬盘驱动器、光盘驱动器、光学扫描仪、精密定位台等。本文将详细介绍音圈电机的工作原理、结构特点、应用领域以及发展趋势。 一、音圈电机的工作原理 音圈电机的工作原理基于法拉第电磁感应定律和洛伦兹力定律。当电流通过线圈时,线圈周围产生磁场。这个磁场与永磁体产生的磁场相互作用,产生一个力,使
    的头像 发表于 06-13 11:03 885次阅读

    请问这个电路作用是什么

    小白 请问一下这个电路是干什么的,是电源切换电路吗(注:VCC_WL是连接WIFI模块电源引脚的,WIFI_PWR是RK3566引出的一共引脚)
    发表于 05-09 18:03

    请问CUBE中SPI配置的CRC Polynomial多项式是干什么用的?

    初学STM32,用原子的板子在学,现在学到SPI,配置的时候看到这个东西,请问是干什么用的?和传统库中哪个匹配的? 而且这个配置没有选项,貌似全是自己输入的。
    发表于 05-07 06:41

    美国云服务器是干什么的

    美国云服务器主要用于提供计算资源、托管网站、应用程序以及存储数据等。很多用户想要了解美国云服务器具体是干什么的,rak部落小编为您整理发布美国云服务器是干什么的。 美国云服务器是一种**基于云
    的头像 发表于 04-10 10:16 527次阅读