当前位置:首页 » 小鹏聊JAVA » 正文

如何成为一个Java架构师

467 人参与  2022年02月27日 16:27  分类 : 小鹏聊JAVA  评论

  image.png

       发自内心的,我真的不想回答架构需要做什么,架构师应该负责什么。因为从实际情况来看,在不同的系统层次,不同的需求,架构师的职责会有所不同;从不同的技术角度来看,架构师是一只变色龙。——是技术大师,技术策划,技术团队指挥。


  那么,如何回答“什么是架构,什么是架构师”这个问题呢?也许我们需要先解决另一个问题。——一个程序员如何走上架构师的道路?从很多朋友那里学到了很多实际案例。程序员走架构师这条路,最常见的原因就是他早把代码写好了。


  那么,写得好的代码是架构吗?显然不是。写得好的代码只是表象,一切都需要规划,尤其是复杂的软件系统,更需要规划,否则你可能一行代码都写不出来。复杂的软件系统肯定需要做大量的准备工作,如抽象设计、对象规划、界面规划等。上一代程序员就是这么说的:详细设计。架构的主要任务还是一样的,需要对整个系统进行系统规划:模块、通信、边界、扩展、技术下沉等等。这个计划完成后,项目才能正常运行。


  当然,架构不仅仅是规划,还有技术鉴定。识别系统中的技术难点,将复杂的技术分解成每项技术的黑盒。在此基础上,进行新的技术规划,使整个系统从技术角度分层次,由难到易,由大到小,但每一层都是彼此的黑箱。也经常有人说系统模块可以达到“鸡犬相闻,永不言传”的状态。


  一个架构师需要足够的技术广度。从软件到硬件,从开发到测试,从运维到安全,我们什么都要知道。当然,你可能不是这个单方面领域最深入的人,但你需要知道它们是怎么做出来的(不仅仅是皮毛,还有原理),以及它们组合成什么样子。技术方面足够宽之后,你会成为一个完美的架构师吗?


  答案是否定的,因为还会有新的问题出现。这次的问题就像是“系统未来需要做哪些运维工作?”"在未来的功能迭代中,系统如何更方便地扩展?"“系统应该如何修改?”“系统应该如何升级?”你会偶尔感到困惑吗?有没有感觉这个建筑的世界好长?为什么你要像保姆一样照顾一切?但仔细想想,应该是,因为一个系统最初的开发和交付只是其生命周期的一小部分。后期的维护、改造和升级只是占据了整个软件生命周期的大部分。你是它的建筑师,是它的灵魂,你当然要设计它的未来。这也是架构师做好的最后一件事:系统的未来设计。建筑师的定义?


  我个人认为优秀的java架构师需要具备以下特征:


  知识广度:我们需要知道主流技术为什么诞生,能解决哪些问题?如果同样的业务用不同的技术实现,各有什么优缺点?比如现在流行的ORM框架Mybatis和hibernate,它们的优缺点是什么?要有清晰的认识,才能在技术建模上做出正确的决策。


  能力:抽象业务和技术。业务抽象意味着在分析需求后,可以建立完善的实体类及其关系。技术抽象是整体架构的分层以及各层之间的交互。这一点非常重要。如果技术抽象能力不足,会导致整个系统架构不灵活,难以维护和扩展。


  知识深度:至少是某个领域的专家,比如消息队列,activeMQ熟悉它的源代码,知道它的实现。


  优秀的学习能力:学习新技术、前沿技术,并运用于解决工作中的业务问题。


  那你是怎么做到的呢?我认为我们可以从以下步骤开始:


  有扎实的java基础,《用JAVA思考》里介绍的内容都能看懂。恭喜你成为程序员。


  2.熟悉主流框架,如mybatis,spring等。


  3.学习了至少一个基于web框架的源代码,如spring  mvc、struts等。


  4.架构或参与高并发系统的设计,知道如何处理突发事件。


  5.能够根据自己的知识维度提出优化建议或者预测自己业务的风险点。


  其实做架构师跟机遇有很大关系。举个例子,一个程序员做到了以上所有,但是公司没有给他这个机会去做,一个真正的架构机会。因为前架构师没有离职,所以没有机会。这就是现实!


本文链接:http://44116.cn/?id=4

<< 上一篇 到底啦 >>