如何从Java工程师成长为架构师?
可以说,架构师几乎都是从基本的工程师走过来的。注意我说的是几乎。不排除那些生来在某些方面就具备某种特异功能的人,比如那些开源界的大神,那种人我们不讨论。
那么还是说说我们凡人。作为一个java工程师。在软件一线领域里打磨了很多年。工作经验慢慢会得到积累。但是不知道你有没有发现,有工作10年的人,依然是个初中级开发,这种兄弟离架构师还远得很。
那就是说,不是所有的java工程师只要年限够了就可以自动升级为架构师。首先你得注重自己的积累和工作性质,干了10年天天干的是同一件事,从早到晚写helloworld,写到老也还是那个水平。所以这是第一点。
第二点,善于归纳总结、善于积累,转化为自己的东西。有的人在岗位上本身可以接触到很多的内容,然而很多时候把它当做一种累赘,恨不得解决完再也不想见到它。可惜就可惜在这种不关有没有价值的用完就丢,并没有勤于思考我做的这件事情,未来有没有可以复用的价值。能不能在下次遇到时,可以协助我以更高的效率来解决问题。
第三点,主动迈出第一步。从java工程师到架构师,其实单从职位上说,title还是欠着一个台阶的。那么这个台阶你要迈出去。从0到1,迈向架构师的岗位,就像当初你初做java工程师一样。先做了他再说,然后考虑以后发展的事情。
总之,对一个相对灵透的java工程师来说,架构师也不是个什么神秘的物种。
在这里,小编为大家带来这篇致力于软件架构师成长之路的Java架构完美设计,以实战角度,为大家实现架构师之梦
为了不影响大家的阅读体验,小编就从整体框架、主要内容和适用人群三部分来为大家介绍
整体框架
本书共15章,分为架构基本理论、架构高级技能、架构综合技能以及架构创新思维四部分,如下图所示。

第一部分包括第1、2章,介绍了架构模式、架构思维、架构编程思想、架构设计原则等,为软件架构设计的基本理论;

第二部分包括第3~5章,介绍了架构师必备的工具体系、Java机制技能要点专题、Java 后台技术栈技能要点专题以及Java八大核心架构设计体系,为软件架构设计的高级技能体系;

第三部分包括第6~13章,以Spring技术为脉络,介绍了JavaWeb、SpringMVC、 SpringIntegration、 Spring Boot、 SOAPWebService、 RESTWebService 以及框架测试等架构设计相关的核心技术,为软件架构设计与实现相关的综合技能体系;

第四部分包括第14、15 章,以开源框架以及自动化代码生成工具开发为中心,启发读者的创新思维并起到抛砖引玉的作用,为软件架构的创新技能体系。

主要内容
第1章对架构基本概念进行了总结,目的是希望读者朋友对架构有正确的认识。理解成为架构师的不易以及练就的方法。亦希望读者朋友能够找到适合自己的架构师角色,制定架构师成长之路的具体步骤,早日实现目标。

第2章把架构过程中最为核心的概念与理论进行了总结。首先介绍了架构的品质与流程,根据架构编程思想,使用UML与设计模式进行基本的架构设计;然后选择开发模型进而选择最佳方法;最后根据架构模式、思维、设计与优化原则,对初步完成的成果进行重构优化。另外,对设计模式这一节,最好能把23种设计模式熟练掌握,达到信手拈来的地步。

第3章,DevOps小节介绍了软件生命周期中各个环节的工具生态圈,虽没必要掌握所有工具的使用方法,但是对各个领域的常用工具必须有所了解。对于重要的常用工具,不仅要学会使用,还需要学会优化。3.4节以Eclipse 为例介绍了优化过程,其他工具亦需要融会贯通。

第4章介绍了Java中特有的机制以及计算机技术中重要机制的Java实现,只有清楚了这些机制,才可以更加深刻地认识Java核心技术内幕,进而在实际项目中快速找到解决问题的答案。其中虚拟机机制与内存机制是所有机制的核心,必须进行深刻把握,这也是解决某些性能问题的前提。

第5章正是架构师必须掌握的重要后台技能专题“中草药”,只有熟练掌握了这些高级技能,才能在架构设计中融会贯通。另外,在调试复杂程序时,往往需要使用多种调试技巧才可以找出问题,切莫轻易放弃。

第6章介绍了Java 八大核心架构体系,架构师在设计任何系统时,都必须根据系统本身特点对这些体现结构进行合理的设计,否则就不能算是-一个合格的系统。另外,本章以SpringMVC为代表,介绍了部分技术细节的实现,如果能掌握其精髓,其他框架亦会融会贯通。

第7章介绍了SpringMVC 最为核心的相关技术,其他如入参类型转换( InitBinder)、输人数据验证、文件上传、拦截器、国际化、静态资源处理、主题与Tiles集成等相关内容,感兴趣的读者朋友可以查阅官网相关资料。另外,一个庞大的综合Java EE系统,还包括相关批处理程序,因此本章也介绍了常用的SpringBatch技术,读者朋友可以根据实际项目的需求来灵活运用。

第8章介绍了SpringMVC最为核心的相关技术,其他如入参类型转换( InitBinder)、输入数据验证、文件上传、拦截器、国际化、静态资源处理、主题与Tiles集成等相关内容,感兴趣的读者朋友可以查阅官网相关资料。另外,一个庞大的综合Java EE系统,还包括相关批处理程序,因此本章也介绍了常用的SpringBatch技术,读者朋友可以根据实际项目的需求来灵活运用。

第9章使用Spring框架时推荐使用接口进行编码,并使用依赖注入(DI) 来提供一个普通的Java对象( POJO)及其执行任务所需的依赖关系。Spring Integration 将这个概念进一步发展,单个组件可能不知道应用程序中的其他组件,使用POJO形式的消息传递,就可以把它们连接在一起。这种应用程序是通过组装细粒度可重用组件来构建的,以形成更高级别的功能。通过精细的设计,这些POJO“管道"可以模块化,并且可以在更高的层次上重用。

第10章介绍了Spring Boot 与Spring Cloud的基本理念,权当抛砖引玉,更多的内容请参照官网。也许有开发者- -看到云服务,就会产生抵触的心理。云服务器的确不是很简单,但也并不是不可碰的技术,只要用心学、勤用功,肯定可以学有所成,关键是要多做调查与实践。

第11章对SOAPWebService技术进行了系统的介绍,需要重点掌握SOAP原理以及WSDL各部分组成内容。具体实现案例请参照本章练习题与课后解答。理解好理论之后,可进行实际代码的编写,编写完成之后,再对照理论进行分析总结,这样就会更好地认识与掌握原理与实现的技术细节。

第12章介绍了RESTful WebService设计的相关核心概念以及结合Spring MVC技术开发的相关技术。需要重点掌握RESTful架构风格的7种特性以及设计方法,另外还要跟随课后习题,进一步理解使用方法,彻底掌握RESTful的架构思想。

第13章:无论是开源框架还是自已公司开发的商业框架都属于产品,而产品是需要不断升级的。为了实现CI/CD,同时也是为了提高测试效率,保障产品品质,设计自动化发布与测试框架势在必行。但是,自动化工具不是万能的,它们各有优缺点,要扬长避短。另外,要注意自动化不能完全取代人工测试。

第14章介绍了开源框架的选择、使用、开发以及发布中的必备技术。能够开发开源软件以及具有开源、知识共享思维与境界,是一名优秀架构师必备的素养。当自已开发的软件在全球成功发布并被更多人利用时,这种成就感与心中的喜悦是无可比拟的。

第15章介绍了项目开发过程中的一些常用自动化工具,在系统升级、系统维护与运营过程中也需要一些这样的工具。 例如: Struts1 升级到SpringMVC、日志监视与分析工具、批处理运行与监视工具、业务数据分析工具等,可根据项目的实际需求进行适当的开发。另外要注意不要过度开发,物极必反,任何事情都依赖于自动化工具的话,会造成工具的泛滥。

适用人群
本文以提高读者的综合技能、启发读者的创新能力为目标,吸收国外架构设计思想并结合国内实际情况,从架构设计者的角度系统地介绍了Java领域架构设计思想与开发技术。如下图所示。

本文以实用为核心,所面向的读者主要是志在成为优秀软件架构师的程序员,也适用于以下读者朋友:
- 走在架构师之路上的工程师。
- 软件项目经理。
- 对计算机技术感兴趣的在校学生。
总结
本文首先介绍了架构设计理论与必备高级专题技能,然后介绍了各种常用架构模式以及对常用框架的模拟,最后介绍了开源框架设计以及自动化代码生成工具的相关技巧。其中重点介绍的部分配备了课后习题,也是对核心技能的进一步巩固与补充;也有点到为止的部分,目的是扩大大家的知识面,形成软件架构理论的必备知识。
程序员的迷茫不仅仅是面对技术繁杂的无力感,更重要的是因为长期埋没于软件世界的浩大的分工体系中,无法看清从业务到软件架构的价值链条,无法清楚定位自己在分工体系的位置,处理不好自身与技术、业务的关系所致。
很多程序员打心底不喜欢业务,这一点我曾经也经历过,我更宁愿从事框架工具、技术组件研究的相关事情。我有个朋友经常吐槽我说:”你们天天加班加点写了那么多代码,然后呢?有改变什么吗?还不是写出了一堆垃圾。”仔细想想很多时候业务在我们脑海中存留的只是逻辑和流程,我们丢失的是对业务场景的感受,对用
户痛点的体会,对业务发展的思考。这些都是与价值紧密相关的部分。我们很自然的用战术的勤快掩盖战略的懒惰!那么这样的后果就是我们把自己限死在流水线的工位上,阉割了自己能够发现业务价值的能力,而过多关注新技术对职场竞争力的价值。
这也就是我们面对繁杂技术,而产生技术学习焦虑症的根本原因。
本文探讨了Java工程师如何成长为架构师的过程,强调了积累、总结及主动学习的重要性,并介绍了涵盖架构理论、技能及实战等内容的专业书籍。
4618

被折叠的 条评论
为什么被折叠?



