内容简介
                                                        本书基于ISO国际标准、架构行业发展情况编著,讲解了软件架构的基本概念、前沿理论和实践应用。全书共7章,包括软件架构概述、基础架构剖析、高阶架构剖析、云计算架构、分布式架构、存储系统架构,以及自定义架构实践。书中对每种架构都详细介绍了其理论基础与具体实践,并给出其优缺点及适用场景。注重理论与实践相结合,使读者能够对每种架构的设计思想有深入的理解,帮助其在进行自定义架构设计时能使用不同风格的架构设计思想,并掌握架构风格分析、设计思想提取、设计思想应用的方法。 
本书既可以作为架构设计的入门书籍,也可以作为深入理解架构设计思想的参考书,还可以作为架构设计时随时查阅的工具书,以及了解架构发展趋势的指南。本书不仅适合软件架构师,帮助他们完善自己的架构理论及框架,还适合想从事架构工作的软件开发者,使其对软件架构有全面的认识并进行设计实践。
                                                    
目录
                                                        前言 
第1章 软件架构概述/ 
1.1软件架构理论体系/ 
1.1.1软件架构的定义/ 
1.1.2架构属性/ 
1.1.3架构说明/ 
1.1.4软件需求与架构需求/ 
1.1.5架构定义流程与设计定义流程/ 
1.1.6架构师/ 
1.2软件架构的发展历程/ 
1.3软件架构设计原则/ 
1.3.1架构设计的基本原则/ 
1.3.2演进式架构设计/ 
1.3.3架构设计的驱动内因/ 
1.3.4架构权衡/ 
1.4架构评价/ 
1.4.1架构评价的目的/ 
1.4.2架构评价的一般方法/ 
1.5架构生命周期/ 
1.5.1架构生命周期与软件生命周期的关系/ 
1.5.2软件生命周期的定义/ 
1.5.3架构生命周期的定义/ 
1.5.4不同开发模式下架构设计的侧重点/ 
1.6架构治理/ 
1.6.1架构的演进与退化/ 
1.6.2重构/ 
第2章 基础架构剖析/ 
2.1单体架构/ 
2.1.1单体架构的软件架构定义/ 
2.1.2紧耦合的经济性与敏捷性/ 
2.1.3快交付与难维护的权衡/ 
2.1.4中小型项目的优选/ 
2.1.5单体架构在自定义架构风格中的设计方法/ 
2.1.6单体架构风格实践/ 
2.2面向服务架构/ 
2.2.1面向服务架构的软件架构定义/ 
2.2.2服务可组合性的复用和复杂性管理/ 
2.2.3开发周期缩短与管理周期增长的权衡/ 
2.2.4不断变化的复杂系统的适用性/ 
2.2.5面向服务架构在自定义架构风格中的设计方法/ 
2.2.6面向服务架构风格实践/ 
2.3客户端-服务器架构/ 
2.3.1客户端-服务器架构的软件架构定义/ 
2.3.2分离与连接的跨平台兼容性/ 
2.3.3关注点分离与版本控制的权衡/ 
2.3.4数据-程序分离场景的适用性/ 
2.3.5客户端-服务器架构在自定义架构风格中的设计方法/ 
2.3.6客户端-服务器架构风格实践/ 
2.4分层架构/ 
2.4.1分层架构的软件架构定义/ 
2.4.2层次化结构的复杂性管理/ 
2.4.3复用与沟通成本的权衡/ 
2.4.4多人协作场景的实用性/ 
2.4.5分层架构在自定义架构风格中的设计方法/ 
2.4.6分层架构风格实践/ 
2.5事件驱动架构/ 
2.5.1事件驱动架构的软件架构定义/ 
2.5.2异步通信的灵活性与性能/ 
2.5.3高性能与容错性、复杂性的权衡/ 
2.5.4异步通信场景的适用性/ 
2.5.5事件驱动架构在自定义架构风格中的设计方法/ 
2.5.6事件驱动架构风格实践/ 
2.6无状态架构/ 
2.6.1无状态架构的软件架构定义/ 
2.6.2状态外部化的水平扩展与容错性/ 
2.6.3可用性与复杂性的权衡/ 
2.6.4大规模水平扩展场景的适用性/ 
2.6.5无状态架构在自定义架构风格中的设计方法/ 
2.6.6无状态架构风格实践/ 
第3章 高阶架构剖析/ 
3.1无状态架构的演进——容器化架构/ 
3.1.1容器化架构的软件架构定义/ 
3.1.2Docker架构/ 
3.1.3Kubernetes架构/ 
3.2面向服务架构的演进——微服务架构/ 
3.2.1微服务架构的软件架构定义/ 
3.2.2分而治之的可伸缩性与迭代交付/ 
3.2.3灵活性与复杂性的权衡/ 
3.2.4大型复杂系统的适用性/ 
3.2.5微服务架构在自定义架构风格中的设计方法/ 
3.2.6微服务架构风格实践/ 
3.3事件驱动架构的演进——流式架构/ 
3.3.1流式架构的软件架构定义/ 
3.3.2分布式事件驱动的实时性/ 
3.3.3高吞吐量与成本、技术复杂度的权衡/ 
3.3.4实时大规模数据处理场景的适用性/ 
3.3.5流式架构在自定义架构风格中的设计方法/ 
3.3.6流式架构风格实践/ 
3.4客户端-服务器架构的演进/ 
3.4.1CQRS架构/ 
3.4.2BFF架构/ 
3.4.3Database per service架构/ 
3.5分层架构的演进——六边形架构/ 
3.5.1六边形架构的软件架构定义/ 
3.5.2内外分离的灵活性与可维护性/ 
3.5.3清晰的分层边界与配置复杂性的权衡/ 
3.5.4多团队协作、不断演进系统的适用性/ 
3.5.5六边形架构在自定义架构风格中的设计方法/ 
3.5.6六边形架构风格实践/ 
第4章 云计算架构/ 
4.1云计算平台/ 
4.1.1云计算平台的发展历史/ 
4.1.2云计算平台的三层架构/ 
4.1.3云计算赋能软件架构/ 
4.2混合云部署架构/ 
4.2.1本地部署架构/ 
4.2.2云平台部署架构/ 
4.2.3混合部署架构/ 
4.3云平台应用架构/ 
4.3.1云微服务架构/ 
4.3.2无服务器架构/ 
4.3.3应用架构切换/ 
4.3.4自动化架构/ 
第5章 分布式架构/ 
5.1分布式架构基础理论/ 
5.1.1分布式架构的软件架构定义/ 
5.1.2自治性的高可用、高性能扩展与容错性/ 
5.1.3高性能与一致性、
                                                    
前言/序言
                                                        现代社会对软件的依赖程度不断提升,软件几乎渗透到每一个领域。在数字化和信息化迅速发展的背景下,软件架构的重要性愈加突出。随着业务需求日益复杂化和技术的不断进步,软件系统变得越发庞大和复杂,这就要求开发团队在系统设计时必须综合考量多种因素,例如可扩展性、可靠性和安全性。因此,软件架构成为保证软件质量和适应快速变化的市场需求的关键所在。良好的软件架构不仅能够提升开发效率、减少系统维护成本,还能增强系统的灵活性和适应性。各行业对高效、稳定且安全的软件系统的迫切需求,使得软件架构的设计和实施在软件开发中占据了至关重要的地位。 
本书基于ISO国际标准、架构行业发展情况编著,讲解了软件架构的基本概念、前沿理论和实践应用。全书共7章,包括软件架构概述、基础架构剖析、高阶架构剖析、云计算架构、分布式架构、存储系统架构,以及自定义架构实践。书中对每种架构都详细介绍了其理论基础与具体实践,并给出其优缺点及适用场景。注重理论与实践相结合,使读者能够对每种架构的设计思想有深入的理解,帮助读者在进行自定义架构设计时能使用不同风格的架构设计思想,并掌握架构风格分析、设计思想提取、设计思想应用的方法。 
本书内容丰富,涵盖了从基本概念、设计思想到实际应用的多个层面。书中详细介绍了软件架构的核心要素,包括架构定义、架构风格及架构实践等。首先,架构定义为理解和构建稳定系统奠定了基础。接着,书中探讨了不同的软件架构风格,如微服务架构、事件驱动架构和面向服务架构等,深入分析了它们的设计思想、优缺点和适用场景等。此外,书中还阐述了架构设计中的常见挑战,如性能优化、系统扩展和安全性问题,并提供了实际案例和解决方案。通过这些内容,读者可以全面掌握软件架构的知识体系,并能够在实践中应用这些技术,解决复杂系统中的实际问题。本书不仅适用于软件架构师,帮助他们完善自己的架构理论及框架,也适用于有一定实际经验的开发者,助力他们全面了解软件架构并开展架构实践。 
由于作者学识有限,虽尽力为多种架构风格给出详细的定义,但难免存在疏漏。本书中软件架构风格的定义采用了卡内基梅隆大学软件工程研究所提出的“元素、元素之间的相互关系以及二者各自的属性”这一理念,并在此基础上,基于有限的理解,对书中涉及的每种架构风格进行了详细定义及具体应用阐述。如有不足之处,恳请读者批评指正。
                                                    
                      

                   


















