架构师确实是一个神奇的职位。在一家小公司里,你可能需要做任何事情,使用从前端到后端的各种技术。这通常被称为全全职工程师更合适。在一个大工厂里,你可能只负责一个平台或中间件的架构,这指的是一个架构师。那么我眼中的java架构师是什么样的呢?
技术能力
毫无疑问,技术能力是最重要的。没有技术能力,就没有架构能力。您需要了解所有主流技术的基本原理、应用场景和快速解决问题的能力。
因此,架构师必须有知识,所需的知识必须不断扩展。你需要知道什么样的场景更适合什么样的技术,以及可能存在什么样的风险。需求来了,你的大脑是空白的,我不知道用什么技术来实现它有多可怕。
什么是技术能力?
1、代码能力
基本能力是写代码、读代码、分析代码。
2、掌握设计模式
Singleton单例,Factory工厂,Proxy代理,Deletgate委托,Strategy策略,Prototype原型。
3、熟悉Spring框架
IOC设计原理、AOP设计原理、事务处理机制、Factorybean、MVC框架、ORM框架。
4、并发编程
实现原子操作、线程通信、消息传输、同步异步、锁定、线程池、volatile机制。
5、性能优化
JVM优化、GC、性能基准和测量。真正理解什么是性能优化,为什么是性能优化?
6、开发工具
Maven管理项目,Git管理源代码,Jenkins自动布局。
架构能力
这可以表现为抽象能力、整体规划能力和设计能力。您需要从业务的角度进行系统分解、技术选择、架构建设和标准化。该架构至少可以满足近年来的发展,或扩展现有的架构。如何根据不同的业务进行系统分解、服务划分和不同的架构?
技术服务于业务,而不是从业务的角度设计架构,架构是空谈。
1、分布式架构
分布式架构原理,CDN原理。
Zookeper/Dubo应用分布式架构策略。
redis主要从复制原理、AOF、RDB、ActiveMQ、RabitMQ、Kafka等分布式中间件。
MongoDB企业级集群、数据分片、转存恢复策略。
Nginx反向代理和负载平衡。
2、微服务架构
SpringCloud、SpringBoot、Docker、Kubernetes等微框架和微服务。
沟通能力
这似乎不是最重要的,但也很重要。作为一名优秀的架构师,您需要清楚地了解客户的需求,并不断地与客户沟通,以实现客户的真正目标。
实战能力
不用说,项目实战非常重要,用户认证、第三方登录、购物车、订单、库存管理、客户管理、数据分析等。没有实践经验和成果,怎样才能有优秀的实义?
你觉得架构师是什么样子的?