之前有网友说想看建筑师升级的文章,所以写了这篇文章。一、定义本文中的架构师:一、实现的能力(似乎是废话);第二,公司愿意承认不仅可以给建筑师的头衔,还可以按照建筑师的标准来支付报酬。
对于程序员来说,架构师是职业发展的一道坎。如果他们跨过它,未来将会有一个光明的未来。否则,他们可能不得不一直做编码。
本文将从“如何升级”和“平时工作内容”两个方面来谈谈我对建筑师的认识。
先说建筑师的误区。
1.架构师并不是脱离实际,不只是在一个人的小隔间里设计架构,而是需要和产品方、需求方、程序员等其他人打交道。
2.建筑师专注于技术。这话没错,但他们一定不是技术上的完美主义者,因为任何产品或网站的架构都充满了妥协。
3.高级程序员和架构师的界限并不明显。并不是说一个高级程序员学好任何一门课程,掌握一门技术后,就会自动升级到架构。在一些要求不高的**中,即使是资深开发人员也会扮演架构的角色。
4.架构师不是什么都知道,但是要知道对于某个需求点可以做什么样的实现方案,然后会根据目前的预算、人员等情况选择适合当前**组的方案。
5.对于建筑师来说,他们不需要自己设计所有的东西。比如实现负载均衡的时候,架构师不可能用java实现一套解决方案,但至少要选择哪个组件,比如nginx,可以在**中构建这套组件。
6.建筑师设计的是产品,不一定是艺术品,建筑师设计的产品可能只满足交通等需求。,也可能只是从远处看,但从近处看可能就一塌糊涂了。但是公司就是要结果,产品开发周期会很紧,所以最终的线上架构只能满足目前的需求。
二、高级开发升级为架构师的必要条件
在许多场景中,高级开发只有满足以下条件才能升级为架构师。这里我以java架构为例。
1.Java Core和Java web的基本技能,比如**和多线程,SSM框架就不提了,这些都是必须掌握的。
2.至少能读linux上的日志。如果可以,最好有在linux上部署和运行程序的能力。
3.具备一定的调优能力,比如你需要能够通过读取日志来调优JVM内存,或者通过读取执行计划来调优*L等等。
4.你要知道设计模式,但不一定要掌握,但至少要知道在哪个场景下可以用哪些模式来优化结构。
5.这是关键的一点。在考虑问题的时候,一定要摆脱“单机版”的限制。在知识储备中,一定要包含负载均衡、消息队列、数据库集群等分布式知识点。
6.和人打交道,至少没有障碍,至少你要能把自己表达清楚。