IT人的架构书单:如何赋予软件以灵魂

简介: 未来,软件开发人员的作用也将变得更加重要,有句话叫做“不想当将军的士兵不是好士兵”,那么在IT界这句话就要换成“不想当CTO的软件工程师不是好程序员”,而对于一个开发人员而言,在成为CTO之前还需要经历无数的历练,其中重要的一步就是从程序员成长为架构师。

与在这个世界上已经存在了几千年历史的建筑业相比,IT业或者说软件业几十年的历史显得微不足道。但是IT行业或许已经成为目前对于世界影响最大的行业之一,我们的生活和工作中随处都是软件,可以说我们已经无法离开软件生活。清晨,伴随着智能手机的闹铃起床,通过天气软件获取今天的天气确定是否需要携带雨具,吃过早餐离开家,这时家中的智能扫地机就开始定时清洁卫生了,上班路上可能打开了社交软件看朋友们发布的动态或者新闻事件,达到公司通过智能打卡机打卡上班,到达工位你打开了电子邮箱,开始了一天的工作...可以说软件产品已经紧密地融入到了我们的生活和工作中。而且在未来,随着商业智能和人工智能的发展,软件的范围将会无限延伸。


未来,软件开发人员的作用也将变得更加重要,有句话叫做“不想当将军的士兵不是好士兵”,那么在IT界这句话就要换成“不想当CTO的软件工程师不是好程序员”,而对于一个开发人员而言,在成为CTO之前还需要经历无数的历练,其中重要的一步就是从程序员成长为架构师。我们无法给架构下一个简单的定义,因为任何定义都会束缚你对架构的无限想象。不可否认,架构师早已出现在人类几千年前的各项生产活动中,比如建筑、音乐。而在计算机软件领域,架构的设计直接影响着系统的生产,比如开发过程和效率、代码和组件复用性等,同时也影响着系统的可用性、可伸缩性、性能、容量可预测性等。在我看来,架构师其实就和建筑业中的建筑设计师一样,他们负责规划整个“产品”的“图纸”,验证各种设想的可能性,但是不会亲自去“搬砖”建房子。想要成长为一名合格的软件架构师,需要经过无数实战的历练,也需要在前行的路上不断学习和总结。本文就为大家整理一些关于软件架构的书籍,希望能够在走向架构师的路上伴你前行。


《设计原本:计算机科学巨匠Frederick P.Brooks的反思》 —— Frederick P.Brooks Jr.

8fd784acd84a1ed283a32f270f41b9da5a407c9b

如果说《人月神话》是近40年来所有软件开发工程师和项目经理们必读的一本书,那么《设计原本:计算机科学巨匠Frederick P.Brooks的反思》将会是未来数十年内从事软件行业的程序员、项目经理和架构师必读的一本书。它是《人月神话》作者、著名计算机科学家、软件工程教父、美国两院院士、图灵奖和IEEE计算机先驱奖得主Brooks毕生经验的结晶。这本书从工程师和架构师的视角深入地探讨了设计的和过程,旨在提高产品的实用性与有效性,以及设计的效率和优雅性。全书共分为6个部分:第一部分主要讨论了什么是设计、设计过程的思考、设计的类别、理性模型及其缺陷、以及对一些好的设计过程模型的探讨;第二部分主要讨论了协作设计与远程协作;第三部分全面总结了设计中的各种原则、经验和教训,包括设计中理性主义与经验主义、用户模型、资源预算、约束、设计中的美学与风格、设计中的范本、设计的分离、设计的演变途径和理由,以及专业设计者为何会犯错;第四部分探讨了建筑设计与计算机软硬件设计在设计思想和方法上的一些共同点和不同之处;第五部分探讨了卓越的设计和卓越的设计师之间的关系;第六部分通过各个领域的各种类型的案例进行了分析和研究,旨在深刻揭示隐藏在这些案例背后不变的设计过程和思想。


《架构之美》 —— Diomidis Spinellis, Georgios Gousios

c7c76173d9681f82e075932b2edb32f4f3ab8949

健壮、优雅、灵活和易维护的软件架构是怎样炼成的?《架构之美》通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的软件设计师和架构师。在每篇文章中,作者都向们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。《架构之美》围绕5个主题领域来组织该书的内容:概述、企业应用、系统、终用户应用和编程语言。《架构之美》让优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。那么如何设计出美丽的架构呢?从代码逻辑到物理网络,从单机到分布式,无数的技术可供架构师选择,如分层、组件化、服务化、标准化、缓存、分离、队列、复制、冗余、代理等,不过它们仍然只是“术”的范畴,而何时何处如何恰到好处地使用它们才是“道”的范畴,比如顿悟变化的道理,在博弈中寻找平衡,以系统化的角度来分析问题,寻找相对与绝对的奥秘、开放的心态……


《企业应用架构模式》 ——  Ma riin Fowler

7649c2a07404bc088fe50ce5765ea98477497ced

企业应用开发的实践得益于多种新技术的出现,多层的面向对象平台已经日渐平常。这些新工具和新技术有能力构建更强大的企业应用程序,但是在实现上还不太容易。由于开发人员未能充分理解有经验的对象程序开发人员在架构方面的经验和教训.因此企业应用中经常存在一些共同的错误。《企业应用架构模式》就是面向企业应用开发者的,可帮助他们迎接这种艰难挑战,这本书的作者Ma riin Fowler注意到,尽管技术本身存在变化——从Smalltalk到CORBA,再到Java和.NET,但基本的设计思想并没有太多变化,可以加以适当调整,用来解决那些共同的问题。在一组专家级合作者的帮助下,作者将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用架构模式》涉及两部分内容。第一部分是关于如何开发企业应用的简单介绍。在阅读这部分时,读者可以从头到尾通读。第二部分是《企业应用架构模式》的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配有详细的Java代码或C#代码的示例。此外,整本书中还用了大量UML图来进一步阐明有关概念。


《恰如其分的软件架构》 —— George Fairbanks

7c2abe9717640ff8081614b40e5857dc513d2b5f

《恰如其分的软件架构》描述了一种恰如其分的架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与敏捷开发方法有机地结合在一起,适合普通程序员阅读。Fairbanks把笔墨聚集在“恰如其分”的软件架构上,这对于每一位想要使架构过程变得更容易的开发人员来说,都是极具吸引力的。《恰如其分的软件架构》通过详细的案例和建议,展示了如何用风险驱动来管理架构的建设和范围,重点突出,易于理解。同时,作者提供了软件架构学术方面的很多细节,这对那些对理论和实践都很感兴趣的开发人员非常有益。


《架构即未来:现代企业可扩展的Web架构、流程和组织》 —— MartinL.Abbott,MichaelT.Fisher

d1b4a4ff5018d4f16aeffccd56b335005a70d7f8

任何一个持续成长的公司最终都需要解决系统、组织和流程的扩展性问题。本书汇聚了作者超过30年的丰富经验, 全面阐释了经过验证的信息技术扩展方法,对所需要掌握的产品和服务的平滑扩展做了详尽的论述,并更新了扩展的策略、技术和案例。针对技术和非技术的决策者, MartinL.Abbott和MichaelT.Fisher详尽地介绍了影响扩展性的各个方面,包括架构、过程、组织和技术。通过阅读本书,你可以学习到以*大化敏捷性和扩展性来优化组织机构的新策略,以及对云计算(IaaS/PaaS)、NoSQL、DevOps和业务指标等的新见解。而且利用其中的工具和建议,你可以系统化地清除扩展性道路上的障碍,在技术和业务上取得前所未有的成功。《架构即未来》这本书凝聚作者多年来在不同的互联网公司工作和咨询过程中积累的丰富经验,从人、过程、技术三个角度深刻而广泛地讨论了技术管理和技术架构的具体实践经验,强调了组织、人员、过程和技术的*佳配合,深入浅出地分析了在技术管理过程中经常遇到的各种具体问题,既讲解理论,也佐以实例,让读者可以系统地获得关于技术管理和技术架构方面的知识和经验。


《大型网站技术架构 核心原理与案例分析 》 —— 李智慧

889faafc04c783a952c57f8b31ed3042e8a6329c

《大型网站技术架构 核心原理与案例分析 》 通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。这本书不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理、测试运维人员等了解网站技术架构的基础概念;还可供包括企业系统开发人员在内的各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。

这本书作者是阿里巴巴网站构建的亲历者,拥有核心技术部门的一线工作经验,直接体验了大型网站构建与发展过程中的种种生与死,蜕与变,见证了一个网站架构从幼稚走向成熟稳定的历程。没有晦涩难懂的术语,没有诘屈聱牙的文句,没有故弄玄虚的观点……明明白白的语句,清清楚楚的文法,干净利落的建议——让读者直接体会网站架构的紧要处,不容马虎的关键点。


《亿级流量网站架构核心技术》 —— 张开涛

85b4ec71ee7ce39f0dab6c06b9e23b7fb7bfdb6b

《亿级流量网站架构核心技术》全称《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》,这本书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。不管是软件开发人员,还是运维人员,通过阅读《亿级流量网站架构核心技术》都能系统地学习实现亿级流量网站的架构核心技术,并收获解决系统问题的思路和方法。如何构建高并发、大流量的系统,不是架构师闭门造车想出来的,是线上实际的用户流量检验的。本书通过大量的实践案例,告诉读者如何架构高并发,大流量的网站系统,书中不光有理论探讨,也有大量的实际案例。


《架构真经:互联网技术架构的设计原则》 —— Martin L.Abbott

dbc78e9c7075d827b78343b9a16cbc2a21be5be7

《架构真经:互联网技术架构的设计原则》 是经典著作《架构即未来》的姊妹篇,聚焦于技术架构本身,提供50条久经考验的互联网技术架构原则,几乎可以支持任何高速增长公司的扩展。硅谷著名互联网企业首席技术官和技术主管现身说法,生动形象地呈现“规则背后的故事”,便于读者理解并运用这些规则解决实际工作中所面临的挑战。该版全面更新以反映新的技术趋势和经验,而且更容易阅读、理解和应用。通过Etsy、纳斯达克、Salesforce、Shutterfly、Chegg、Warby Parker、推特等著名互联网企业首席技术官和技术主管现身说法,以易于理解的方式,生动且形象地呈现“规则背后的故事”。通过阅读本书,在完成并评价技术设计方面,架构师将学到有效的非技术洞见。开发人员会学到从数据库到会话状态的处理技巧。管理人员将在设定目标、做出决策以及与技术团队互动方面得到有益的帮助。无论什么角色,都会得到关于风险与利益平衡的实用指导,通过设置优先级,把计划付诸行动,从而以低成本获得比较大的可扩展性。


《DevOps:软件架构师行动指南 》 —— Len Bass,Ingo Weber

b1706169b46a2e5f8964a4c913edb29f7296835e

DevOps为加速新软件功能的发布和改善对生产环境系统的监控带来了希望,但是对软件架构师和软件架构来说,DevOps的关键意义却常常被忽视。《DevOps:软件架构师行动指南 》全面解决了这些问题,不仅剖析了软件架构师为实现DevOps目标必须要做出的决策,并且说明了DevOps的其他参与者有可能以哪种方式来影响架构师的工作,还详细介绍了高效部署DevOps所需要的组织、技术和运营环境,以及DevOps对每个开发阶段的影响。作者解决了把多个功能关联起来的横切关注点问题,提供了对合规性、性能、可靠性、可重复性和安全方面的切合实际的洞察。横看成岭侧成峰,远近高低各不同”。当我们愈是从不同角度和层面解读DevOps,就有机会愈加接近DevOps的本质,并正确地指导企业经营和技术实践。本书少有的从软件架构层面系统性地阐述DevOps,令人耳目一新并大呼过瘾。


《尽在双11 阿里巴巴技术演进与超越 》 —— 阿里巴巴集团双⒒技术团队

a6eb65ce5204e223fe6149e4f929c2cf42095463

“双 11”,诞生于杭州,成长于阿里,风行于互联网,成就于新经济,贡献于全世界。从 2009 年商城起,双 11 已历经八年。每年的双 11 既是当年的结束,又是走向未来的起点。技术的突破创新,商业模式的更替交互,推动着双 11 迈步向前。《尽在双11——阿里巴巴技术演进与超越》是迄今由阿里巴巴集团官方出品、全面阐述双 11 八年以来在技术和商业上演进和创新历程的书籍。内容涵盖在双 11 背景下阿里技术架构八年来的演进,如何确保稳定性这条双 11 生命线的安全和可靠,技术和商业交织发展的历程,无线和互动的持续创新与突破,以及对商家的赋能和生态的促进与繁荣。这本书主要面向广大互联网技术和商业从业者,内容包括基础设施、云计算、大数据、AR/VR、人工智能、物联网等技术领域的剖析,以及在电商、金融、客服、物流等商业层面的洞察;同时也可以作为了解科技与商业最新发展的一个窗口,供科研人员和高校在校师生参考。《尽在双11——阿里巴巴技术演进与超越》也包含丰富的双 11 发展历程中的故事性片段,生动有趣,可读性强,读者可以在由衷感叹双 11 背后艰辛的演进历程之余,更为透彻地体会到阿里人在技术和商业创新上坚韧不拔、矢志不渝的精神。


目录
相关文章
|
23天前
|
设计模式 前端开发 网络协议
软件体系结构 - 软件架构复用
软件体系结构 - 软件架构复用
32 0
|
14天前
|
运维 负载均衡 监控
软件体系结构 - 关系数据库(3)主从架构
【4月更文挑战第26天】软件体系结构 - 关系数据库(3)主从架构
24 0
|
19天前
|
消息中间件 Kubernetes 供应链
软件体系结构 - 架构风格(14)SOA架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(14)SOA架构风格
24 0
|
19天前
|
存储 前端开发 Java
软件体系结构 - 架构风格(13)MVC架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(13)MVC架构风格
27 0
|
19天前
|
存储 XML vr&ar
软件体系结构 - 架构风格(12)超文本系统架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(12)超文本系统架构风格
23 0
|
19天前
|
存储 算法 数据挖掘
软件体系结构 - 架构风格(11)黑板架构架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(11)黑板架构架构风格
22 0
|
19天前
|
存储 SQL 数据库
软件体系结构 - 架构风格(10)数据库系统架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(10)数据库系统架构风格
31 0
|
19天前
|
XML 存储 JSON
软件体系结构 - 架构风格(9)基于规则的系统架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(9)基于规则的系统架构风格
34 0
|
19天前
|
SQL 设计模式 算法
软件体系结构 - 架构风格(8)解释器架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(8)解释器架构风格
39 0
|
19天前
|
消息中间件 传感器 运维
软件体系结构 - 架构风格(7)事件驱动架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(7)事件驱动架构风格
28 0