软件架构师或解决方案架构师必读的五本书 - javarevisited


我收到了许多高级Java开发人员的询问,他们渴望成为软件架构师或解决方案架构师,他们能做什么才能成为软件架构师?哪些书籍,资源或认证可以提供帮助?还有一般性的询问,例如您需要多少经验才能成为软件架构师等。过去,我一直向他们建议一些书籍以供阅读,以扩展他们的知识库,并从体系结构和设计的角度来看软件。
本文是许多此类建议的汇总,从软件架构师的角度来看,我只选了5本最好的必读书籍。由于架构是一个非常广泛的主题,并且高度依赖于您所工作的领域,因此不可能从上到下学习设计软件所需的一切,但是这些书将为您提供构建健壮,安全的必要工具和技术。
它们还将帮助您建立专注于基本要素而不是细节的思维方式,这是开发人员的思维方式与架构师的思维方式之间的关键区别。通常,开发人员专注于类和方法等底层细节,而架构师专注于高层要素,例如组件应如何通信,持久层应如何表现,使用哪种技术以及什么将是非功能性的要求等,这些书在面向对象设计,良好的编码实践以及在软件开发的初始阶段如何避免代价高昂的错误方面也提供了很好的建议。

1.  企业应用程序架构的模式
这是每位程序员都应该阅读的《四人帮》一书之类的经典作品。马丁·福勒(Martin Fowler)是我最喜欢的作家之一,也是软件开发界的一位上师,这本书清楚地说明了原因。文字写得很好,易于阅读。本书是对原始Java设计模式书的补充,   但从企业体系结构的角度列出了更多的模式。如果您有兴趣学习程序员用来在网络上制作复杂的实际软件的流行框架背后的模式和体系结构原理,则必须阅读本书。

2. 实践中的软件架构 
对于那些好奇或想要了解软件体系结构背后的基本概念和思想的人来说,这是一个良好的开端,但是它有些抽象,许多程序员可能会不喜欢它。我喜欢这些书的是关于历史事件的故事和轶事。由于我坚信它的故事可以教你做什么和不做什么,而且我们的思想更开放,可以记住故事而不是概念,因此我发现这本书值得一提。

3.   Clean架构
这是您应该阅读的有关软件架构的第一本书。Bob大叔同时还是  Clean Code  和  Clean Coder的作者,这两本书是专业程序员必读的书籍,他介绍了他多年如何构建干净的体系结构的经验。一种健壮,可维护且适应变化的东西。在本书中,您不仅可以学习架构软件的基本概念,还可以学习该级别上使用的术语。您还将学习  SOLID设计原则  和编写简洁代码所需的良好编码实践。该书还通过比较它们的优缺点为评估不同的设计和体系结构提供了实用的建议。简而言之,每本高级程序员或有志成为解决方案架构师的人都应该阅读有关软件体系结构的最基本的书之一。

4.  构建微服务:设计细粒度的系统
另一本关于现代分布式软件(尤其是微服务)的设计和架构的好书,是推动这一代发展的最伟大的应用程序,例如Uber,Facebook,NetFlix等。如果您希望从单一应用程序走向世界的微服务,那么这是您应该阅读的书。

5. 领域驱动的设计:解决软件核心问题的复杂性
这是此列表中最古老的书籍功能之一,许多人都认为这不是针对软件架构师的。好吧,我同意,这不是给软件架构师的,但绝对是想要成为软件架构师的程序员必读的文章。这对于具有3至5年经验的软件开发人员来说是理想的选择,因为它提出了许多实际问题及其解决方案,而这些问题只能通过实际经验来学习。这些问题及其解决方案可在许多不同的环境中工作,并且正在考虑设计和架构的人至少应该对此感到熟悉。
简而言之,本书提供了深刻的体系结构见解,可以帮助您在不断变化的环境中创建健壮的系统,最重要的是,埃里克·埃文斯(Eric Evans)做了出色的工作,用开发人员可以理解的语言来解释所有这些问题。软件架构师的关键属性之一是软件各个方面的知识,例如设计,编码,维护,部署,支持等,并且该属性只能通过扩展您的知识库和经验来获取。