架构师将从“如何升级”和“平时工作内容”?

优采云 发布时间: 2021-08-05 03:43

  架构师将从“如何升级”和“平时工作内容”?

  之前有网友说想看架构师升级文章,所以写了这篇文章。我们先定义一下这篇文章中的架构师:第一,能力达(好像是废话)。其次,公司愿意承认不仅可以授予建筑师职称,还可以按照建筑师的标准支付工资。

  对于程序员来说,架构师是职业发展的障碍。越过它,以后的前途一片光明,否则你可能要一直做代码编码。

  本文将从“如何升级”和“日常工作内容”两个方面谈谈我对架构师的理解。

  一、说说大家对建筑师的误解

  

  1、Architect 不是不吃人不吃烟花,他不只是在一个人的隔间里设计架构,还需要和产品方、需求方、程序员等人打交道。

  2、Architects 专注于技术。这是真的,但你绝不能成为技术完美主义者,因为任何产品或网站 的架构都充满了妥协。

  3、高级程序员和架构师的界限并不明显。高级程序员不是有一天能把一门课学好。一旦他们掌握了一项技术,他们就会自动升级到该架构。在一些要求不高的项目中,甚至架构的作用都是由高级开发来扮演的。

  4、architects are not all proficient in every aspect, but they have to know what implementation schemes can be implemented for a certain requirement point, and then appropriately choose the one that suits the current project team according to the current budget,人员等

  5、对于建筑师来说,并不是你必须自己设计一切。比如在实现负载均衡时,架构师不可能在java中实现一套解决方案,但至少要选择哪些组件,比如nginx,这组组件可以在项目中构建。

  6、Architect 设计是一种产品,不一定是艺术品。建筑师设计的产品可能只能满*敏*感*词*通等需求,可能只能远观,但近看可能会一团糟。但是公司只求结果,产品开发周期会很紧,所以最终的线上架构只能满足现在的需求。

  二、从高级开发升级到架构师的先决条件

  在很多场景下,高级开发只有满足以下条件才有资格升级为架构师。这里我以java架构为例。

  

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

  2、 至少可以在 linux 上读取日志。如果可能,最好有在linux上部署和运行程序的能力。

  3、 具有一定的调优能力。例如,您需要能够通过查看日志进行 JVM 内存调优,或者通过查看执行计划进行 SQL 调优。

  4、要懂设计模式,不需要精通,但至少要知道什么样的场景,什么样的模式可以用来优化结构。

  5、这是关键之一。在考虑问题时,必须摆脱“*敏*感*词*”的限制。在知识储备中,必须收录负载均衡、消息队列、数据库集群等分布式知识点。

  6、 与人打交道,至少没有障碍,至少要能把意思表达清楚。

  三、Advanced 开发不会自动升级到架构,除非你精心准备

  在大多数公司中,都有高级开发人员升级为架构师的情况。我也见过很多高级开发人员通过跳槽成为架构师的案例。但机会只属于有准备的人。

  

  如果进阶开发一直关注手头的事情,下班后不学习,可能无法完成升级,而且这个升级步骤比初级开发到进阶难度要大很多,为什么呢?

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

  

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

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

  2、 一些公司还在使用传统技术,比如*敏*感*词*的SSM,甚至JDBC+java的开发模式。在这样的公司,升级似乎有点困难,但也不是不可能。对于在公司工作的高级开发人员,我通常会阅读更多相关书籍。阅读时,我关注一个主题:如果我要设计一个可以满足双十一流程的架构,我该怎么做?更具体地说,如果我要设计一个高并发流量的尖峰系统,我该怎么办?事实上,很多结构化面试问题都是围绕这两个方面展开的。

  学习后,至少高级开发人员可以拥有架构师的技能。至于这种高级开发者的简历怎么写架构的经验,别问我,我也说不出来,或者大家都知道,但我说不出来。

  

  四、架构师必备技能(以及如何升级)

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

  其实对于进阶开发来说,学习本身并不是难点。关键是不知道要学什么,每个点应该学到什么程度?在这里,如果你想面试成功,那么你可以对每个知识点有个大概的了解。

  2、具体到学习路线,目前知道阿里路线,也看到有人彻底了解spring cloud的组件然后完成升级的案例。

  3、对我来说,升级的时候看了《亿流量网站架构核心技术》这本书,知识面比较全,接下来我就按照里面给出的知识体系做一个由一个。再深入一点,比如我读到它提到使用hystrix进行限流,我会看其他材料,以深入了解该组件的配置和其他详细用法。总之,先看表面,再深入,然后基于各个组件组装一个可以应对高并发的系统。

  4、Practice 很重要,不要害怕在实践中出错,但要及时总结。

  

  可以说,建筑师们开始了几个设计项目,一定很可怕,他们还会继续重构。所以,在架构师的实习阶段,加班是常有的事,领导甚至可能会继续说设计的产品也有可能被投诉。

  这个时候一定要坚持,然后不断的反省。同时,在设计架构时,一定要接触各种相关知识,让架构师慢慢成长起来。

  5、 这是比较容易忽略的一点。架构师必须能够沟通。这往往是升级的瓶颈。

  架构师要与产品沟通,得到系统的需求,同时与需求方进行协调。在有限的时间内,他们一定不能做所有的事情,必须放弃。这必须提前协商。然后设计,拼接组件,然后和开发或开发经理沟通,不要让开发者在设计架构的时候误解了他们的初衷。

  我目前不是架构师,我还在升级的路上。根据我接触过的架构师的升级经验和我自己的升级经验,总结一下架构师技术升级的要点:用两个词来描述:集群,用三个词:分布式,然后用更多词:将海量流量和数据合理分配给适当数量的机器。

  如果你想明白这一点,你就会知道后面要学什么,比如流量分配中的负载均衡,存储海量数据时的数据库集群,或者分库和表。为了防止单点故障,应该设计冗余。系统,系统之间的通信必须使用消息中间件,每个请求都不能去后台,所以可以建缓存,单个缓存容易失效,所以可以建分布式缓存,以便监控性能,所以一些监控措施,比如监控JVM,监控数据等,为了等待查看日志,需要一些日志组件。以及更多。

  掌握了以上知识点后,就可以进行拼装了,比如搭建一个秒杀系统来测试他们的学习成绩。

  五、建筑师通常做什么?

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

  2、 如果你不是资深架构师或技术总监,你可能不会设计新的架构。往往是在现有基础上的改进,如扩容、分库分表、新的日志监控系统等。对此,架构师经常会做一个案例,比如在linux上搭建一个日志系统,把步骤写清楚,让开发遵循同样的模式。对于高级架构,你可能要从头开始设计,或者决定调整技术组件等。这通常是在一些系统或一些机器上先做的。

  3、解决技术问题。这些问题可能不在架构层面,但只要是高级开发无法解决的问题,架构一般是可以接受的。谁使架构最好?如果是架构组件方面的问题,例如配置或部署问题,那么架构师会更好。

  4、 但最重要的是学习。比如现在的流量是每秒2000,达到5000怎么办?然后找一些机器搭建一些组件进行实验。

  六、Architect 更多的是与人打交道

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

  

  所以,除了技术,架构师还必须具备以下能力:

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

  2、当各方利益不一致时,必须协调妥协。其实这也要看各方的沟通。

  3、管理团队的能力。

  4、 充分听取他人想法的能力。

  所以,很多公司的架构师绝不是“对窗外的事情闭上耳朵”。当然也有这样的建筑师,但绝对是大神级别的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线