掌握哪些技能才能成为Java架构师?

发表时间: 2023-03-16 09:20

互联网开发领域,架构师可以分为业务架构师、中间件架构师、系统架构师。 根据不同的方向,在相关招聘平台上,对于架构师的岗位职责和任职要求各有不同。在招聘网站上可以看到真实的例子:

Java架构师(点击查看大图)

中间件架构师(点击查看大图)

系统架构师(点击查看大图)

以上是三种不同架构师的能力要求,虽然类型不同,技术要求侧重不同,但是我告诉你,成为架构师都要具备以下能力。

1、技术掌控力:

成为架构师要掌握全面的技术栈,一切技术皆工具,包括开发语言、框架、各种中间件都是工具,要达到熟练使用,了解其原理和长短板,具备合适场景合理选型和灵活运用的能力。

比如要成为业务架构师,那么必须掌握Java生态圈方方面面的技术。如何做到呢?首先需要把所有技术列出来,然后将自己现在所拥有的技术跟这个图表做一个匹配,标出里面哪些熟悉,哪些还有待提升,最后把有待提升的技术学会。

2、架构师思维

我们常说道与术的问题,架构思维就是架构师的“道”。

随着工作时间的增长,会悟出一些道理,感受到一些规律性的东西,这些东西可能现在大家觉得有点虚,但是慢慢地大家会认可。

(1)知行合一,做之前,先考虑意义 在做某件事之前,一定要知道自己的目的是什么。目的和做的事情两者要合一,这是第一个层面。 第二个层面是清楚地知道你手里的资源允许你干什么事。比如说Spring Cloud,我很想去用,但是我的团队hold不住,你强行把这个东西推下去之后,事情做的并不成功。结果还是需要你承担责任。

(2)原生优于定制,约定大于配置 如果你没有特殊需求的话,官方的东西最好,保持原样,除非它不满足你的要求,你再去定制它。因为你改了之后,一旦发生问题,你很难摸清楚错误发生在什么地方。而如果官方的出现问题,整个社区都在给你撑着,你就能够及时地把这东西补上去。

(3)什么都是,最后会沦落到什么都不是 这是我早期搞架构的时候犯的一个错误。当时我老想着做一套完整的系统,无论你想做什么样的业务,拿来之后稍微一修改什么都能支撑,后来发现根本不是我想的那样,它几乎什么都不能支持。就像造汽车,偏舒适还是运动,两者兼顾的没有。

(4)控制技术欲,不要瞎折腾 看到新技术就想用到自己的系统中的,这不是一个好架构师的行为。做架构的前提是稳,这是底线,试错一定在生产环境中。

(5)留下扩展,但不要想到100年后 当代人做当代人的事情,不要考虑那么久远。当代留下的坑,只能留给后代补。

(6)没有最好的,只有最合适的 跟第3条比较像,但第3条是广度上,这一条是深度上,垂直领域不要总想做到最完美。

(7)够用就好,玩的越花,风险越大 比如有人玩 ++i++;finally(return);if(赋值) ,这都太花了,风险很大。

(8)大巧不工,简约最美 要把代码写的很简约,很优雅。

3. 解决问题的能力

具备日常场景下的解决方案积累,举几个例子:

单点登录

分布式事务及数据一致性

秒杀并发场景

复杂工作流

超高并发、吞吐量

4. 团队协调力、管理能力(加分项)

你的思维和设计要落地,必须具备团队层面推进事情进展的能力(尤其架构团队的leader)

5. 最后,扩展自己的人脉。

人脉很重要,随着职位的提升,段位的提升,需要一定的背书。

以上就是架构师要具备的能力,其中技术掌控力可以很快通过学习来提升。方法就是罗列全面的技术栈,然后对号入座,找到自己的短板,最后逐个攻破。