写在前面
软件架构师是每个程序员职业生涯中内功心法修炼的终极目标。当然要达到这个目标,一般并不简单,你需要具备“十八般武艺”,而且还要融汇各家所长。那么,该如何更好的理解架构呢?
从形上看,架构是系统结构的骨架,支撑和连接各个部分;从神上看,架构是系统设计的灵魂,深刻体现了业务技术实现的本质。
从纵向架构上看,架构涉及由客户端发送请求到服务器处理,再从服务器返回给客户端的各个主要步骤的具体处理细节;从横向架构上看,架构又关联到实现这种客户端——服务器端的架构模式。
而如果要成为一名优秀的架构师,你必须攻克这三个难关:
- (1)需要掌握各种技术的优缺点与特性,才能知道如何使用。
- (2)站在架构设计者的角度,思考一款优秀的系统架构应该具备哪些要素。
- (3)如何用“组合拳”来巧妙解决复杂问题。
怎么样?你觉得你距离软件架构师还有多少距离呢?
在这里,小编为大家带来这篇致力于软件架构师成长之路的Java架构完美设计,以实战角度,为大家实现架构师之梦!!!
为了不影响大家的阅读体验,小编就从整体框架、主要内容和适用人群三部分来为大家介绍,有兴趣深度获取完整版PDF的朋友们,小编在文末留有领取方式。
整体框架
本书共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领域架构设计思想与开发技术。如下图所示。
本文以实用为核心,所面向的读者主要是志在成为优秀软件架构师的程序员,也适用于以下读者朋友:
- 走在架构师之路上的工程师。
- 软件项目经理。
- 对计算机技术感兴趣的在校学生。
总结
本文首先介绍了架构设计理论与必备高级专题技能,然后介绍了各种常用架构模式以及对常用框架的模拟,最后介绍了开源框架设计以及自动化代码生成工具的相关技巧。其中重点介绍的部分配备了课后习题,也是对核心技能的进一步巩固与补充;也有点到为止的部分,目的是扩大大家的知识面,形成软件架构理论的必备知识。
任何技术的学习都需要先调查研究,再模仿,最后再进行优化升级( 也就是创新),架构设计亦是如此。
喜欢文章请多多点赞评论转发,如果想要免费获取完整版PDF文档的朋友,请关注小编,并私信回复【学习】即可马上得到领取方式哦!!!