架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容

之前有网友说想看架构师升级的文章,所以写了本文。先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能按架构师的标准发工资。

对于程序员来说,架构师是职业发展的一道坎,如果跨过去了,后面就前途无量了,否则可能一直得做着代码coding的事情。本文将从“如何升级”和“平时工作内容”两方面,说下我对架构师的认识。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5  架构师平时干什么?

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

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

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

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

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

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

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

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

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

3 管理团队的能力。

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

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

7 总结,求推荐以及求写博文的题材

本人平时还做点架构师的活,但自己感觉没到架构师的水准。所以本文还有个目的是抛砖引玉,以求各位真正的架构师来指导。虽然本人不是架构,但本人最近呆过的公司不小,其中里有不少架构,乃至资深架构,在他们的帮助下,本人好歹在这方面也有一些建树,所以本文的内容也不是空穴来风,也算是从实践中总结而来。

我用了将近三个小时找资料写了本文,所以如果大家感觉有帮助,请点下推荐,如果有任何指导性意见或任何想法,请写在评论里,如果感觉文本写得不好,也请在评论里指出,但就别反对本文了。

在本文的开篇就提到,本文是应网友要求而写,本人的专长是java高级开发的面试,也算是半个架构师,平时也好写个博文什么的,如果大家想听哪些主题,也可以通过评论来告诉我,我能写的尽量写。

原文地址:https://www.cnblogs.com/JavaArchitect/p/9130007.html

时间: 2024-10-12 20:52:27

架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容的相关文章

架构师升级步骤和平时的工作内容!

之前有网友说想看架构师升级的文章,所以写了本文.先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能按架构师的标准发工资. 对于程序员来说,架构师是职业发展的一道坎,如果跨过去了,后面就前途无量了,否则可能一直得做着代码coding的事情.本文将从"如何升级"和"平时工作内容"两方面,说下我对架构师的认识. 一.先说下大家对架构师认识的误区 1.架构师不是不食人间烟火,不是只在一个人的隔间里设计架构,而是需要和产品方

第三篇:个案管理师之工作内容篇-台湾最佳医院信息化及管理实践

曾志仁原作,袁永福编辑整理 前言 很荣幸能向各位医疗行业的同仁介绍台湾医院的一些管理经验和实践.客观的讲,台湾更好的继承和保留了中华民族传统文化,同时台湾深受美国和日本的影响,这样台湾文化是中西方文化的结合,这使得台湾的医院管理也很有特色,有很多经验值得大陆医疗行业学习和借鉴的. 笔者有幸结识台湾台中的中山大学附属医院曾志仁医师,他本身是一个医术精湛的妇科癌症专科医生,同时对医院信息化和医院管理的造诣也很深,是比较少见的跨界高手.对于医院管理有着成套的理解和实践,本系列文章所包含的知识产权大部分

如何与不喜欢的人打交道

在完美世界中,我们交往的每一个人都很和蔼友好,体贴细心,大方.我们会互相开玩笑,逗对方开心.我们都沉浸在友好欢乐的氛围中,没有人可以打扰我们,困扰我们,或者污蔑诽谤我们. 然而,我们并不生活在那个理想国度.总有一些人会让我们发狂崩溃.当然,不得不承认,我们有时候也会令别人抓狂.那些我们不喜欢的人通常都很轻率,冒失,他们也会常常诋毁我们的人品,质疑我们的处事动机,也不能理解我们的笑点-但却希望我们能理解他们的笑点. 你或许想知道,对于那些总是惹我们生气的人,或者我们不愿意与他共餐的人,我们是不是有

和人打交道和和客观世界打交道 与人斗,其乐无穷;与天斗,其乐无穷(转)

最近在论坛里看到很多人发牢骚,说薪水少,可在我看来,你们这样的人拿得到高薪才怪! 我先问一句:这里有多少人是本科的?有多少人是正规本科的(不算自考,成考和专升本)?有多少人是有学位的?有多少有学位的是拿着网大排名前50所大学的学位的?恐怕是少之又少吧!在中国,薪水和学位的关系对于应届生来说是绝对的,即使对于以后的发展,学位也很重要,要不那些低学历的人评职称为什么吃亏呢?你可以告诉我这不合理,不错,这确实不合理,但却是现实.如果你不能改变现实,那还是适应它吧!你也可以告诉我低学历一样可以拿高薪,我

《云计算架构技术与实践》连载(16):2.4云计算解决方案典型架构组合及落地应用场景之2.4.1桌面云

版权所有,未经华为书面许可,请勿转载或转发 2.4       云计算解决方案典型架构组合及落地应用场景 2.4.1 桌面云 基于云计算总体架构下的桌面云解决方案如图2-29所示. 图2-29 桌面云解决方案架构子系统组合 桌面云解决方案主要基于云计算平台的弹性计算.弹性存储.操作运维及业务发放管理系统功能,通过集成桌面云会话控制管理及远程虚拟桌面控制代理等模块,提供针对企业内部应用的呼叫中心桌面云.营业厅终端桌面云.Office办公桌面云解决方案,以及面向公众网用户的VDI出租业务. 其主要业

幸 运 快 三 的 导 师 能 信 吗? 信 誉 名 师 咨 询69937609

[邀请.码88-88-1104 ][技巧叩:699-37-609]网 只 [hct97. com]生活不如意十之八九,因此,我们总是不满意的多.人的满意分为两种,一种对自身的,一种是对外界的.外界我们控制不了,外界常常令我们促不及防的产生不愉快,如下班时今天没赶上末班车,早上上班时堵车,这些外界的不愉快不可避免的会影响我们自己的不满意,是不是我天生的命不好,倒霉事全占了,是不是天生就不行,为什么那么多的不如意? 这时,人就会产生自怨自艾的情绪,说到这个自怨自艾,能够暂时的让自己处于自我的境界,隔

上周热点回顾(6.4-6.10)

热点随笔: · 我们都被GitHub出卖了!逃跑吧兄弟!(Ray Liang)· GitHub和75亿美金(北京的201个蓝天)· 我就死磕安卓了,怎么了?(android 开发)· 从 docker 到 runC(sparkdev)· .NET Core Community 第二个千星项目诞生:Util(某个人.)· <你必须掌握的Entity Framework 6.x与Core 2.0>正式出版感想(Jeffcky)· 架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的

6月份文章分类汇总

1 技术类 <高级架构进阶之HashMap源码就该这么学> <高级架构进阶之HashMap源码就该这么学(二)-get方法,remove方法> <分布式发布订阅消息系统 Kafka 架构设计(一)> <分布式发布订阅消息系统 Kafka 架构设计(二)> <分布式发布订阅消息系统 Kafka 架构设计(三)> <分布式发布订阅消息系统 Kafka 架构设计(四)> <高可用Redis服务架构分析与搭建> <性能优化原

架构师素养及从小菜进阶架构(CTO)的书籍【转】

CTO要了解无线技术/搜索/大数据/数据库等. -- 通常定义架构有几个层次,这包括业务架构.产品架构.应用架构和技术架构: 1.业务架构:描述一个企业围绕一个行业做了哪些业务,例如支付行业的收单.退款.出款.充转提等能力,这与公司对外和对内定义的产品无关. 2.产品架构:描述对外和对内定义的可销售的产品,例如微信的条码支付.扫码支付.公众号支付等. 3.应用架构:描述提供了哪些系统和服务来实现对外和对内的产品架构,从而支持公司的业务架构,例如微信内部的订单系统.支付系统.账务系统和对账系统等等