数人云之前给大家分享了《成为“伟大”程序员需要学会的9种“姿势”》对于想转型成为架构师的童鞋们来说最急缺的是什么呢?当然是经验和实践案例,数人云今天精挑细选了19本架构师必读经典,想往这个方向发展的小伙伴千万不能错过。
软件架构已经成为每个软件项目的重要组成部分,在构建一个可靠的软件体系结构失,可以选择系统的重要部分,考虑这些部分如何组合在一起,并在设计这些系统时做出关键的决策,它是任何软件开发项目的基础。
高级开发和软件架构师之间存在着巨大的差异,作为一名架构师,需要更多的经验来设计最终的解决方案。
软件架构理论与实践同样重要,因此本文为软件开发团队和架构师推荐了一份今年最好的软件架构书籍列表,这些书籍对于理解并有效地应用软甲架构原则在实际的项目上非常有价值。
书名:《Beyond Software Architecture: Creating and Sustaining Winning Solutions》
作者:Luke Hohmann
下载链接:http://www.ithov.com/book/project/softwaredev/40703.shtml
本书为开发人员提供了可以使用的实用技术来提高生产力,通过几个合乎逻辑的章节,涵盖了典型的架构问题,例如:可移植性、可用性、性能、分层、API设计和安全性,以及其他有价值的材料注入业务和产品管理方面的软件架构,这是常常被忽略或者遗忘的,本书提供了关于现实世界中创建成功应用解决方案的宝贵简介和经验。
书名: 《Domain-Driven Design: Tackling Complexity in the Heart of Software》
作者:Eric Evans
下载链接:http://download.csdn.net/download/iidonotknow119/7410739
这是一本很棒的书,关于如何让应用的设计与正在解决的问题领域模型相匹配,Eric认为,学习相关的问题领域要在项目结束时如同最初一样,所以重构是他技术的一个重要部分。
本书为读者提供了一种系统的领域驱动设计方法以及一套广泛的设计最佳实践,基于经验的技术和基本原则,促进面向复杂领域的软件项目开发,本书包含了许多基于实际项目的例子,用以说明域驱动设计在现实软件开发中的应用。
书名: 《97 Things Every Software Architect Should Know: Collective Wisdom from the Experts》
作者:Richard Monson-Haefel
下载链接:http://download.csdn.net/download/llwl1982/7791289
在这本真正独特的技术书籍中,一些软件架构师在关键的开发问题上提出了一些宝贵的意见,这些意见已经超越了技术本身的价值。包括Neal Ford、Michael Nygard在内的40多位知名架构师,在本书中根据其自身经验让开发者了解如何消除复杂性,增强能力。像要成为一名成功的软件架构师,需要精通业务和技术,本书会告诉读者顶级架构师都认为哪些东西才是最重要的。
书名:《Enterprise Integration Patterns Designing, Bui**lding, and Deploying Messaging Solutions》
作者:Gregor Hohpe、Bobby Woolf
下载链接:http://download.csdn.net/download/xcz911/1479592
书名:《Software Architecture in Practice 》
作者:Len Bass、Paul Clements、Rick Kazman
下载链接:http://www.ithov.com/book/project/softwaredev/40794.shtml
本书着重于软件体系结构中的关键主题:“ilities”、“Patterns/Styles”,记录体系结构和评估体系结构,作者分享他们自身的经验,涵盖了设计、制定和验证系统的基本技术主题,还强调了大型系统设计的业务上文的重要性。根据不同的案例研究,描述成功的软件架构是什么样的。
书名:《Design Patterns: Elements of Reusable Object-Oriented Software 》
作者:Erich Gamma、Ralph Johnson、John Vlissides、Richard Helm、Grady Booch
下载链接:http://download.csdn.net/download/sinat_29468539/8859307
本书的作者们,对于面向对象软件的设计很有经验,为常见的设计问题提供了简单但又强大的解决方案,介绍了23种模式,允许设计人员创建更灵活、优雅、最终可重用的设计,而不必重新发现设计方案本身,通过本书,可以了解这些重要的模式如何适应软件开发过程,以及如何利用它们来最有效地解决设计问题。
书名: 《The Process of Software Architecting》
作者: Peter Eeles、Peter Cripps
下载链接:http://download.csdn.net/download/thedeep/5902661
任何成功的软件系统都离不开好的软件架构,有效地架构需要清楚地了解组织角色、工作、执行的活动,以及执行的最佳顺序。在本书中可以找到以下问题的答案,在典型的软件开发项目中,架构师处于什么角色?软件架构文档如何满足不同利益相关者的需求?可重用资产的适用性在设计的过程中,架构师的角色对于需求定义、体系结构的推导等等。
书名:《Just Enough Software Architecture: A Risk-Driven Approach》
作者:George H. Fairbanks
下载链接:http://download.csdn.net/download/rokiechen/9890695
这是软件开发人员的实用指南,与其他软件架构书籍不同,它交到风险驱动的架构,本书旨在使架构与所有软件开发人员相关联,开发人员需要了解如何使用约束作为指导Rails来确保预期的结果,以及看似微笑的更改如何影响系统的属性。
本书会让读者清楚自己在做什么,除此之外,还强调工程学,提供了一些实用性的建议,软件设计决策影响体系结构,反之亦然,本书的方法通过描述具有不同抽象层次的模型,从架构到数据结构设计。
书名:《Software Architecture Patterns》
作者:Mark Richards
下载链接:http://download.csdn.net/download/dotphoenix/9624944
Mark Richards是一位经验丰富的软件架构师,其在应用、集成和企业架构方面具有相当大的成就,自1983年起,就活跃在软件行业,是o'reilly书籍和视频的作者和主持人。
任何应用程序或系统的成功都取决于使用的体系结构模式,通过描述体系结构的总体特征,这些模式不仅指导设计人员和开发人员如何设计组件,还决定了这些组件应该如何交互的方式,本书包含了基于几个体系结构和软件开发质量属性的每个模式分析,在本书中,读者可以看到更多关于分层架构、事件驱动架构、微内核体系结构、微服务体系结构、基于空间的体系结构等相关信息。
书名:《Continuous Delivery: Reliable Software Releases Through Build,Test,and Deployment Automation》
作者:Jez Humble、David Farley
下载链接:http://download.csdn.net/download/alecplus2005/9468008
将应用发布给用户通常是一个痛苦、危险和耗时的过程,本书阐述了使更高质量、有价值的功能向用户提供快速、增量交付的原则和技术实践,通过对构建、部署和测试过程的自动化,以及开发人员、测试人员和运维之间的协作,交付团队可以在几个小时的时间内发布变更,不管项目的规模大小,或代码库的复杂性。
Jez Humble首先提出了一个快速、可靠、低风险的交付过程基础,然后他们引入了部署管道,这是一个用于管理所有变更的自动化过程,从签入到发布,他们还讨论了支持持续交付所需的生态系统,从基础设施、数据和配置管理到治理,作者介绍了一些技术,包括自动化的基础设施管理和数据迁移,以及虚拟化的使用,对于每个人,他们回顾关键问题,确定最佳实践,并演示如何降低风险,覆盖范围包括:自动化建设的各个方面,集成、测试和部署软件,实现部署管道在团队和组织水平,改善合作开发人员、测试人员和运维团队之间的协作,逐步发展特性在大型的分布式团队,实施一个有效的配置管理策略,自动化验收测试,从分析到实现,测试能力和其他非功能性需求和实现部署的零宕机版本,此外,它们还讨论了如何管理基础设施,数据,组件和依赖关系以及如何导航风险管理、遵从性和审计。
书名:《 Scalability Rules: 50 Principles for Scaling Web Sites》
作者:Martin L. Abbott、Michael T. Fisher
下载链接:http://download.csdn.net/download/xueyufish/4547357
对于任何处理在线业务的人来说,这都是必不可少的读物,本书确保了战略设计原则适用于日常挑战,它是设计和构建可伸缩系统的一个有洞察力的、实用指南。由于现代系统的复杂性,可伸缩性的考虑应该是体系结构和实现过程中不可或缺的一部分。
Martin L. Abbott、Michael T. Fisher将可伸缩性从“Black Art”转变为一套现实的、与技术无关的最佳实践,用于支持几乎任何环境中的超增长,包括前端和后端系统,对于架构师来说,他们提供了关于创建和评估设计的强有力新见解。对于开发人员,他们共享特定的技术来处理从数据库到状态的所有事情,对于管理者来说,他们在目标制定、决策制定和与技术团队的交互方面提供了宝贵的帮助,无论你的角色是什么,都可以为设定优先级和最大限度找到实际的利益指导。
书名:《Microservices vs Service-Oriented Architecture》
作者: Mark Richards
下载链接:http://download.csdn.net/download/ker79/355862
微服务架构近来获得了广泛的关注,它听起来很像面向服务的体系结构,这两种架构都专注于将大型单片应用程序拆分为小型独立服务的结合,并且都有简化开发的承诺,读者可以在本书中找到关键问题的答案:是什么让它们与众不同?微服务真的只是SOA做得对吗?这两种架构的不同之处以及微服务真的比SOA好吗?
书名:《Software Architecture: Foundations、Theory、and Practice》
作者: R. N. Taylor、N. Medvidovic、E. M. Dashofy
下载链接:http://download.csdn.net/download/jianxiaodanmomo/8772415
这是一本关于软件架构非常实用的书籍,但如果你不喜欢以“学术”风格写的书,这本书不适合你,软件架构是开发大型、实用的软件密集型应用程序的基础,本书不关注一种方法、代码、工具、或者过程,而是广泛地调查软件架构技术,当培训者和专业人员可以选择合适的工具来做手头的工作。
书名:《Essential Software Architecture》
作者:Ian Gorton
下载链接:http://download.csdn.net/download/u011433684/10007451
如今,软件行业充斥着“技术架构师”和“首席架构师”之类的职位,但许多人都觉得“架构”是专业软件开发中最被滥用和最不理解的术语之一,Gorton试图解决这一困境,它简明地描述了作为一个软件架构师所需要知识的基本要素和关键技能,这些解释好汉了架构思考、实践和支持技术的要点,它们从对结构和质量属性的一般理解,从中间件组件和面向服务的体系结构到最新的技术,如模型驱动的体系结构、软件产品线、面向方面的设计和语义Web,这些都影响了未来的软件系统。
书名:《Refactoring in Large Software Projects: Performing Complex Restructurings Successfully》
作者:Martin Lippert、Stephen Roock
下载链接:http://download.csdn.net/download/alyfore/9393000
重构是大型软件项目的一个重要主题,特别是在遵循敏捷方法的项目中,考虑到体系结构随着需求的变化而变化,它提供了真实重构项目的真实体验,并展示了如何重构软件以确保它是高效、新鲜和可适应的。
书名:《12 Essential Skills for Software Architects》
作者:Dave Hendricksen
下载链接:http://download.csdn.net/download/curfeu/4087056
对于许多开发人员来说,这些技能并不是与生俱来的,他们很少在正式的培训中得到解决问题的方案,现在,经验丰富的软件设计师Dave Hendricksen会帮助填补这一空白,让组织影响更大,并迅速转移到职业生涯的下一个层次,对于架构师来说,仅仅拥有技术技能是不够的,软件能同样重要的是作为一名架构师有效地生活,这本书对架构师所需要的12项技能进行了清晰而详细的讨论,如果你是一名开发者,并渴望成为一名叫架构师,本书会对你非技术技能有所帮助。
书名:《Reactive Design Patterns》
作者:Roland Kuhn Dr、Brian Hanafee、Jamie Allen
下载链接:http://download.csdn.net/download/u011433684/9992010
反应式设计模式,用于构建具有弹性、响应性的消息驱动分布式系统,本书中,读者可以得到消息传递、流控制、资源管理和并发性的模式以及类似于测试友好设计之类的实际问题解决方案,所有的模式都包括试用Scala和Akka的具体案例。
书名:《Object-Oriented Design Heuristics》
作者:Arthur J. Riel
下载链接:http://download.csdn.net/download/chenxu_ustc/1269736
最后一本书是关于“面向对象设计启发法”,这是一本优秀的面向对象开发手册,提供疼的基础经验指导方针,帮助开发人员做出正确的设计决策,本书为了解面向对象开发的基础知识的读者提供了下一步的目标,需要知道他们是否做对了,并做出正确的选择。
以上是小数给大家推荐的19本架构师必读书籍,当然学无止境,关于应用开发文档的另一个主要来源是GitHub,不仅可以找到关于架构方面的文档,还可以找到关于Docker、弹性搜索、TDD、DDD、BDD、CI等等。
原文作者: DZone
原文链接:https://www.tuicool.com/articles/Ijmyauq