架构师书籍推荐

Posted 骨灰级收藏家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构师书籍推荐相关的知识,希望对你有一定的参考价值。

讲实话,要看书只能看看架构师思维相关的数据,开拓一下思路就行,看看别人的看法和观念。

架构师需要积累的技术不要从书上来,去官网看他的说明书,一切纯讲技术类的书籍都有滞后性。

正在用的技术要时常关注一下他官网爆出的问题及版本差异,尤其是bugfix。

简单推荐几本:

 

《亿级流量网站架构核心技术》

书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。

不管是软件开发人员,还是运维人员,通过阅读《亿级流量网站架构核心技术》都能系统地学习实现亿级流量网站的架构核心技术,并收获解决系统问题的思路和方法。

《凤凰架构:构建可靠的大型分布式系统》

这是一本从架构视角讲解如何构建大型分布式系统的著作,是超级畅销书《深入理解Java虚拟机》的作者周志明多年架构和研发经验的总结,得到了多位行业资深架构专家的联袂推荐。

全书共16章,分为演进中的架构、架构师的视角、分布式的基石、不可变基础设施和技术方法论五部分。

●第①部分 演进中的架构(第1章)

着重介绍了软件开发历史中多种主流架构风格出现的契机、解决的问题以及带来的新缺陷。

●第②部分 架构师的视角(第2~5章)

总结了一名架构师应该在架构设计时思考哪些问题,有哪些主流的解决方案和行业标准做法,各种方案有什么优缺点,不同的解决方法会带来什么不同的影响,等等。

●第③部分 分布式的基石(第6~10章)

重点讨论了“不同架构风格是应该在技术规范上统一,还是由应用系统自行解决”这个问题,给出了解决思路、方法和常见工具。

●第④部分 不可变基础设施(第11~15章)

重点讲解了基础设施不变性的目的、原理与实现途径,包括虚拟化容器、容器间网络、持久化存储、资源与调度、服务网格等内容。

●第⑤部分 技术方法论(第16章)

面向技术决策者集中讨论了与分布式、微服务、架构等相关的理论话题,将解决问题的能力归纳、总结、升华为方法论。

全书以实践为导向,一个案例贯穿全书,同时给出了基于Spring Boot、Spring Cloud、Kubernetes、Istio、AWS Lambda 五种架构风格的样例工程。

《领域驱动设计 软件核心复杂性应对之道 》

 关于领域驱动设计的,了解一下,通读即可

《Head First设计模式》

讲设计模式的,老外的书,配有不少案例,生动有趣,推荐刚接触架构和设计模式的同学阅读。

但是读多了反而感觉内容啰嗦,讲述效率太低。

不太适合能力强,对设计模式比较熟悉的人。

架构师思维:

我们常说道与术的问题,架构思维就是架构师的“道”。

在这里给大家简单列举几条

第一点:知行合一,做之前,先考虑意义

就是说在做某件事之前,你一定要知道自己的目的是什么。你的目的和你做的事情两者要合一。这是一个层面。 第二个层面是清楚地知道你手里的资源允许你干什么事。比如说Spring Cloud,我很想去用,但是我的团队hold不住,你强行把这个东西推下去之后,事情做的并不成功。结果还是需要你承担责任。

第二点:原生优于定制,约定大于配置

也就是如果你没有特殊需求的话,官方的东西最好,保持原样,除非他不满足你的要求,你再去定制他。因为你改了之后,一旦发生问题,你很难摸清楚错误发生在什么地方。而如果官方的出现问题,整个社区都在给你撑着,你就能够及时地把这东西补上去。

第三点:什么都是,最后会沦落到什么都不是

这是早期我搞架构的时候犯的一个错误。当时我老想着做一套完整的系统,无论你想做什么样的业务,拿来之后稍微一修改什么都能支撑,后来发现根本不是我想的那样,它几乎什么都不能支持。就像造汽车,偏舒适还是运动,两者兼顾的没有。

控制技术欲,不要瞎折腾 你自己或者你们公司内部有没有技术欲特别强,总喜欢玩新的技术,看到新技术就想用到自己的系统中的。这不是一个好的架构师的行为。做架构的前提是稳,这是底线,试错一定不要在生产环境中。

第四点:留下扩展,但不要想到100年后

当代人做当代人的事情,不要考虑那么久远。当代留下的坑,只能留给后代补。

第五点:没有最好的,只有最合适的

跟第3条比较像,但第3条是广度上,这一条是深度上,垂直领域不要总想做到最完美。

第六点:够用就好,玩的越花,风险越大

比如有人玩这种 ++i++;finally(return);if(赋值) ,面试玩玩也就算了,代码这么写存粹是没事找事。

第七点:大巧不工,简约最美

就是要把代码写的很简约,很优雅。

解决问题的能力:<!--这里需要能够拓展解释一下。-->

具备日常场景下的解决方案积累,举几个例子:

单点登录

分布式事务及数据一致性

秒杀并发场景

复杂工作流

超高并发、吞吐量

团队协调力、管理能力(加分项):

作为架构师,你不再像普通开发一样,局限在自己所负责的模块里,

你的思维和设计要落地,你需要跟软件开发里的各个角色打交道,必须具备团队层面推进事情进展的能力(尤其架构团队的leader)

最后附上架构师战略大地图(图片看不清可以评论区拿高清图)

 

 

 

架构师技术书籍推荐

为了避免混淆,书名的颜色分类,红色是种草, 黑色是拔草(至少不适合本文的预设读者)

1. 国内一线的书

说到大型互联网站的建设,我们在世界上也是一流的,比国外那些咨询师写的更深味其中艰辛。

  • 《高可用架构(第一卷)》

厚厚的一本,新浪微博TimYang牵头的高可用架构社区,几十个一线实战案例的结集分享,从头看起的话只恨自己时间不够多。

  • 《大型网站: 架构演进与性能优化》

薄薄的一本,今年新书,淘宝的分布式、无线化、中台化、单元化的历程与优化,同样是满满的一线经验。

  • 《大型网站技术架构:核心原理与案例分析》

同是淘宝系薄书,如果一个新人进入到大型互联网站,这是最好的入门科书普。

技术分享图片

技术分享图片

  • 《亿级流量网站架构核心技术》

京东开涛作品,很多技术掰细了讲,所以也蛮厚的。

  • 《京东基础架构建设之路》

从早前的.Net,到如今大量自研组件的体系,可以给兄弟单位的基础架构部做参考。

  • 《进化 - 运维技术变革与实践探索》

赵成的极客时间,印成书了。运维书里难得讲想法而不是工具使用的书: "运维能力是整体技术架构能力的体现,运维层面爆发的故障一定是整体技术架构中存在问题,割裂两者,单纯的看技术架构或运维都是毫无意义的。"

技术分享图片

技术分享图片

 

极客时间

极客时间是一种新的知识交付模式。为了保持书单的利益无关中立性,就不放二维码了,大家自个上 https://time.geekbang.org/

  • 《左耳听风》,左耳朵耗子把自己脑子里的东西一股脑地倒了出来,唯一缺点是贵。
  • 《从零开始学架构》,互联网架构的基础知识,用来培养新人或者自己查漏补缺。

技术分享图片

技术分享图片

拔草:有些书名字蛮吸引,但翻开目录都是各种软件的安装和使用指南。

 

2. 国外互联网架构的书

  • 《SRE:Google运维解密》

自编广告词:“地球上有这么一个团队,将运维推向极限高度”。SRE的事情,很多是基础架构部的事情。今年的续篇,《The Site Reliablity Workbook》。

技术分享图片

技术分享图片

  • 《发布!软件的设计与部署 》

Nygard作品,关于高可靠性的软件,学校里不会教,出来社会却要面对的那部分。 英文原标题里,“软件”的完整表达是“Production-Ready Software”

  • 《DevOps 软件架构师行动指南》

DevOps的书里难得地讲基本原则,而不是讲具体用什么监控软件。

技术分享图片

技术分享图片

  • 《微服务设计》

微服务开山之作,那么多微服务的书,这本只谈原则而不会写一堆具体框架的使用。

  • 《生产微服务》

再次被中文编辑的书名打败,其实是《Production-Ready Microservices》,作者以在Uber的经验,讲一个满足基本业务逻辑之外,生产可用的微服务的检查表。

技术分享图片

技术分享图片

附加:有两本英文标题明明是Scalability的书,中文编辑硬是改为《架构即未来》,《架构真经》,前者有我们前CTO推荐不敢乱说,后者虽然是第二版还是觉得有点过时,大家自己看目录判断了。

 

3. 架构师基础的书

  • 《恰如其分的软件架构 - 风险驱动的设计方法》

由于人类与生俱来的惰性,计算机原本科学的、精准的设计方式,有了敏捷的借口之后就很难再维持了。本书就是在这种背景下,提出由风险来决定设计的度。除了开始的风险驱动部分,其余部分就是规规矩矩标标准准的架构师教科书。

  • 《软件系统架构:使用视点和视角与利益相关者合作 第2版》

也是教科书,最难得的是,这本老书在十年后的2011年年升级了第二版,所以感觉鲜活了好多,也许是最鲜活的一本架构书。

技术分享图片

技术分享图片

附加:说起更新,《Software Architecture in Practice 3rd》也在2012年更新,《Documenting Software Architectures 2nd》在2010年更新,不过中规中矩,没那么大吸引力让人去啃英文了。

拔草:关于设计模式,我以前曾经有过很多本,GOF23啦,企业应用架构模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦。但现在觉得对新人来说,一本Java写的《Head First 设计模式》,知道什么叫设计模式就够了。

UML相关的书,其实UML只在那个重度文档的年代会体现统一的作用,现在大家都是怎么表达清楚怎么来,最多简单用下类图和时序图了。

 

4. Java语言的书

  • 《Java8 实战》

Java8的新特性讲得最全最仔细的,Java8是一道坎,很多程序员现在还没迈过去。英文版有重写了,面向JDK9的《Modern Java in Action》。

技术分享图片

技术分享图片

《Java性能权威指南》

紫色的这本,比起多年前那部调优圣经,讲得更加深入,也更加贴近现在的JDK。英文版还有一本《Optimizing Java》。

技术分享图片

技术分享图片

  • 《深入理解 Java 虚拟机 第2版》

理解虚拟机并不是那么难,Java程序员来说,很多知识其实是必须的。

  • 《Java并发编程实战》

Java并发经典,人手一本不用多说了。

  • 《实战Java高并发程序设计》

国人之作,流畅易读,内容也比上面一本新一些。

技术分享图片

技术分享图片

  • 《Effective Java 2nd》

Java编码规范与指南, 英文版有覆盖JDK9的第三版。

私家推荐,结合了它和《Java编码指南:编写安全可靠程序的75条建议》、《阿里巴巴Java开发手册》的《唯品会Java开发手册》(https://vipshop.github.io/vjtools/)

技术分享图片

技术分享图片

 

极客时间:

  • 《Java核心技术36讲》是Oracle 做Java平台部门的杨晓峰的专栏,Java里很多关键点都讲到了。
  • 《深入拆解Java虚拟机》是Oracle里做新一代Graal编译器的高级研究员郑雨迪对JVM的深入讲解,能坚持看完的同学平时都可以装一副很懂的样子了。

技术分享图片

技术分享图片

补充:培训新人最好找《Java核心技术》。最新是第10版,但按JDK近来的升级速度,这书都快追不上了。

要一口吃成个胖子,推荐飒然的《Java工程师修炼之道》,可以作为老鸟培养新人,整个Java后端开发的提纲式材料。

《Java 9模块化开发》,跳票无数回之后,Java9终于支持模块化了,对这方面关心对可以看看。

《响应式编程 — RxJava 高阶指南》,掘金小册,连介绍里的几篇基础文章,是响应式编程不错的入门。 https://juejin.im/book/5a09997cf265da432002bf6a

拔草:《Thinking in Java》有点太旧了,而且作者思路随意,译者语言晦涩。《Java性能优化权威指南 》多年前的调优圣经已经旧的没谱。

 

5. 操作系统与网络的书

  • 《Linux内核设计与实现 第3版》

业内缩写LKD。Robert Love用最薄的篇幅,顺畅的文字将Linux内核主要的算法讲清楚了,《深入理解Linux内核》之类厚厚的全是代码,不是专门的内核程序员看这本足够了。

  • 《性能之巅》

Brendan Gregg的书,火焰图的推广者,在Netflix专攻性能。操作系统的性能调优、监控、工具和方法论,看这本就够了,已经足够厚,可能是书单里最厚的一本,但值得作为一本枕头书。

技术分享图片

技术分享图片

 

  • 《WireShark网络分析就这么简单》和 《WireShark网络分析的艺术》

多少人,是看了这两本轻松又实战的书,才真正理解TCP的细节。

  • 《深入理解计算机系统 第3版》

如果实在觉得家里没本书镇楼心里不踏实,就买这一本,也是左耳朵耗子力荐的一本。

技术分享图片

技术分享图片

 

极客时间:

很有现代感,互联网站涉及的内容,那些经典教科书里都没有的。

技术分享图片

附加:《现代操作系统 第3版》如果看LKD未尽兴,可以回头看看这本基础概念,感觉没《操作系统概念》(恐龙书)那么枯燥。

《TCP/IP详解 卷1:协议 第2版》 这么多年过去了,TCP的书好像还是只有英年早逝的作者的这一本。后人写的第二版也出来,厚了很多。

拔草:《UNIX环境高级编程》和《UNIX网络编程》,缩写为APUE和UNP,不写C的同学其实没啥用。《Unix 编程艺术》,扯的都是闲篇,厚厚的一本略读一下就行。

另外,那些日本韩国人写的《图解XXX》都不喜欢。

 

6. 算法的书

  • 《数据结构与算法分析-Java语言描述 第3版》

够薄,数据结构与算法分析的点基本都涵盖了,而且示例代码是Java写的,新出了第3版。

  • 《算法 第4版》

可与上一本对比着读,厚一些,也多些图,但知识点没上面的全,也是Java的。

技术分享图片

技术分享图片

附加:《数学之美》、《编程珠玑》,都是专栏文章,讲得并不系统,可以当兴趣读物来看。

拔草:无比枯燥很多公式的《算法导论》,《计算机程序设计艺术》就留给特别厉害的同学去读了。

 

7. 程序员的自我修养

  • 《程序员修炼之道-从小工到专家》

Pragmatic Programmer--注重实效的程序员系列的开山之作。

  • 《代码整洁之道》和 《程序员的职业素养》

Robert.C Martin作品,英文名是很相近的《Clean Code》和 《Clean Coder》,应该接替《代码大全2》成为必看系列,因为后者太厚了,而且也有不少过时的东西。

还有一本英文版的《Clean Architecture》,不过讲的是单体应用自身的架构。

技术分享图片

技术分享图片

 

  • 《有效的单元测试》

讲代码可读性的书很多,专门教测试代码怎么写得可读的少,而事实上我们很多时间都在维护测试代码,所以推荐下。

技术分享图片

拔草:《重构》很厚,但最有价值就是前面几章的洗脑篇。

温伯格的书网上很推崇,《成为技术领导者》之类的,但我觉得年代太远,读起来其实没多大意思,一两个鸡汤观点还要自己从书里慢慢淘,有那功夫不如看点别的。

 

8. 团队的书

敏捷的书高度重复,看哪本都差不多,比如最开始那本《解析极限编程--拥抱变化》就行,但没得卖了。

其他如《硝烟中的Scrum 和 XP》,《学习敏捷》,《敏捷开发的艺术》都不错。

技术分享图片

技术分享图片

 

以上是关于架构师书籍推荐的主要内容,如果未能解决你的问题,请参考以下文章

Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档

Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档

资深架构师:推荐高薪架构学习路线

好课推荐:开课吧·Java企业级分布式架构师010期Java架构师高清完整

Java架构师必须知道的 6 大设计原则

如何成为Java架构师?