架构师确实是个神奇的职位,在小公司,你可能什么都需要做,使用前端到后端各种技术,这时常被人称为全栈工程师,我倒觉得“全干工程师”更贴切。
在大厂,你可能只负责某个平台的架构或中间件的架构,这时候就是指某一类的架构师。
作为一名对标阿里P7的架构师,我眼中的Java架构师是什么样的呢?
技术能力,毋庸置疑肯定是最重要的。没有技术能力就没有架构能力。你需要知道所有主流技术的基本原理、应用场景,及快速解决问题的能力。
所以,架构师必须要有见识,所需知识面肯定是要不断拓展的。你需要清楚在什么样的场景用什么样的技术比较合适,并知道可能存在什么样的风险。需求来了,你脑子一片空白,不知道用什么技术实现这事多可怕。
那技术能力有哪些呢?
写代码,读代码,分析代码,这是基本能力。
Singleton 单例,Factory 工厂,Proxy 代理,Deletgate 委托,Strategy 策略,Prototype 原型。
IOC 设计原理,AOP 设计原理,事务处理机制,FactoryBean,MVC 框架,ORM 框架。
原子操作,线程通信,消息传递,同步异步,锁,线程池,volatile实现机制。
性能基准和衡量,JVM调优,GC。真正理解什么是性能优化,为什么要性能优化?
Maven 管理项目、Git 管理源代码、Jenkins 自动布署。
这个可以表现为抽象能力、整体规划能力、及设计能力。你需要照在业务的角度进行系统分解、技术选型、架构搭建,以及规范制定。架构出来了至少可以满足近几年的发展,或者可以很方便对现有架构进行扩容。
不理解业务你如何进行系统分解,服务划分,及根据不同业务作出不同的架构?
技术都是为业务服务的,不站在业务的角度设计架构,那架构就是空谈。
分布式架构原理,CDN原理。
分布式架构策略,Zookeeper/Dubbo 应用。
分布式中间件,Redis主从复制原理、AOF、RDB,分布式消息通信 ActiveMQ、RabbitMQ、Kafka。
MongoDB企业级集群,数据分片,转存及恢复策略。
Nginx 反向代理及负载均衡。
微框架与微服务,Spring Cloud,Spring Boot,Docker,Kubernetes。
这个看起来不是最重要的,其实也非常重要。作为一个优秀的架构师,你需要清楚的知道客户的需求,需要不断和需求人员进行沟通,以达到客户真正的目的。
项目实战这个很重要,也不用多说,
用户认证、第三方登录、购物车、订单、库存管理、客户管理、数据分析等等。
没有实战经验和成果,如何实义优秀?
$ welcome to hooyes.net
[INFO] ------------------------------o-
[INFO] Author : HOOYES
[INFO] Site : https://hooyes.net
[INFO] Page : https://hooyes.net/p/java-architect
[INFO] Last build : 2023-07-31 09:16:20 +0000
[INFO] -0------------------------------