架构师是做什么的

之前有网友说想看架构师升级的文章,就写了这篇文章 。首先,在本文中给架构师一个定义:首先,能力是达到的(这似乎是无稽之谈);第二,公司愿意承认,它不仅可以给建筑师头衔,还可以按照建筑师的标准付费 。
对于程序员来说,架构师是职业发展的一个障碍 。如果他们穿越了,就有前途了,不然可能就要一直做编码了 。
本文将从“如何升级”和“平时做什么”两个方面谈谈我对建筑师的理解 。
首先说一下建筑师的误区
1.架构师不是不食人间烟火,不只是在一个人的小隔间里设计架构,而是需要和各行各业的人打交道,比如产品端、需求端、程序员 。
2.诚然,架构师专注于技术,但他们一定不是技术完美主义者,因为产品或网站的架构都充满了妥协 。
3.程序员和架构师的界限不明显 。不是程序员学好一门课程,掌握一门技术的那一天,就会自动升级到架构 。在一些要求不高的项目中,甚至开发都扮演着架构的角色 。
【架构师是做什么的】4.架构师不是每一个领域都精通,而是需要知道某个需求点可以有什么实现方案,然后根据目前的预算和人员选择适合当前项目团队的方案 。
5.对于建筑师来说,并不是所有的东西都要自己设计 。例如,当实现负载平衡时,架构师不可能用java实现一组解决方案,但是至少可以用哪个组件,比如nginx,来构建项目中的这组组件 。
6.建筑师设计的是产品,不一定是艺术品,建筑师设计的产品可能只满足交通之类的需求,可能只能从远处看,近期可能会很乱 。但是公司只是想要结果,产品开发周期会很紧,比较终的线上架构只能满足目前的需求 。
第二,开发升级为建筑师的必要条件
在许多场景中,开发只有满足以下条件才能升级为架构师 。这里我以java架构为例 。
1.javacore和javaweb的基本技能,比如集合、多线程、ssm框架就不说了,一定要掌握 。
2.你至少可以在linux上阅读日志,如果可以,你应该有能力在linux上部署和运行程序 。
3.有一定的调优能力,比如需要能够通过读取日志来调优jvm内存,或者通过读取执行计划来调优sql 。
4.不需要掌握设计模式,但至少需要知道在哪个场景下可以用哪个模式来优化结构 。
5.这是重点 。在考虑问题时,要摆脱“单机版”的限制 。在知识储备中,应该包括负载均衡、消息队列、数据库集群等分布式知识点 。
6.和人打交道,至少没有障碍,至少要能把自己表达清楚 。