在这份书单里,我是这么一个同学:关心Java,关心架构,对文字有一定的洁癖;基础知识懂一些,但忙,不会花太多时间来研究算法和OS;需要掌握一个软件时会买一本XX in Action,但不买那种各式安装指南、使用手册的。
如果你和我差不多的趣味,那这份书单会适合你。
为了避免混淆,书名的颜色分类,红色是种草, 黑色是拔草(至少不适合本文的预设读者)
1. 国内一线的书
说到大型互联网站的建设,我们在世界上也是一流的,比国外那些咨询师写的更深味其中艰辛。
《高可用架构(第一卷)》
厚厚的一本,新浪微博TimYang牵头的高可用架构社区,几十个一线实战案例的结集分享,从头看起的话只恨自己时间不够多。
《大型网站: 架构演进与性能优化》
薄薄的一本,今年新书,淘宝的分布式、无线化、中台化、单元化的历程与优化,同样是满满的一线经验。
《大型网站技术架构:核心原理与案例分析》
同是淘宝系薄书,如果一个新人进入到大型互联网站,这是最好的入门科书普。
《亿级流量网站架构核心技术》
京东开涛作品,很多技术掰细了讲,所以也蛮厚的。
《京东基础架构建设之路》
从早前的.Net,到如今大量自研组件的体系,可以给兄弟单位的基础架构部做参考。
《进化 - 运维技术变革与实践探索》
赵成的极客时间,印成书了。运维书里难得讲想法而不是工具使用的书: "运维能力是整体技术架构能力的体现,运维层面爆发的故障一定是整体技术架构中存在问题,割裂两者,单纯的看技术架构或运维都是毫无意义的。"
拔草:有些书名字蛮吸引,但翻开目录都是各种软件的安装和使用指南。
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核心技术》。最新是第10版,但按JDK近来的升级速度,这书都快追不上了。
要一口吃成个胖子,推荐飒然的《Java工程师修炼之道》,可以作为老鸟培养新人,整个Java后端开发的提纲式材料。
《Java 9模块化开发》,跳票无数回之后,Java9终于支持模块化了,对这方面关心对可以看看。
《响应式编程 — RxJava 高阶指南》,掘金小册,连介绍里的几篇基础文章,是响应式编程不错的入门。拔草:《Thinking in Java》有点太旧了,而且作者思路随意,译者语言晦涩。《Java性能优化权威指南 》多年前的调优圣经已经旧的没谱。
5. 操作系统与网络的书
《Linux内核设计与实现 第3版》
业内缩写LKD。Robert Love用最薄的篇幅,顺畅的文字将Linux内核主要的算法讲清楚了,《深入理解Linux内核》之类厚厚的全是代码,不是专门的内核程序员看这本足够了。
《性能之巅》
Brendan Gregg的书,火焰图的推广者,在Netflix专攻性能。 操作系统的性能调优、监控、工具和方法论,看这本就够了,已经足够厚,可能是书单里最厚的一本,但值得作为一本枕头书。
《WireShark网络分析就这么简单》和 《WireShark网络分析的艺术》
多少人,是看了这两本轻松又实战的书,才真正理解TCP的细节。
《深入理解计算机系统 第3版》
如果实在觉得家里没本书镇楼心里不踏实,就买这一本,也是博主力荐的一本。
6. 算法的书
《数据结构与算法分析-Java语言描述 第3版》够薄,数据结构与算法分析的点基本都涵盖了,而且示例代码是Java写的,新出了第3版。
《算法 第4版》可与上一本对比着读,厚一些,也多些图,但知识点没上面的全,也是Java的。
附加: 《数学之美》、《编程珠玑》,都是专栏文章,讲得并不系统,可以当兴趣读物来看。
拔草:无比枯燥很多公式的《算法导论》,《计算机程序设计艺术》就留给特别厉害的同学去读了。
7. 程序员的自我修养
《程序员修炼之道-从小工到专家》
Pragmatic Programmer--注重实效的程序员系列的开山之作。
《代码整洁之道》和 《程序员的职业素养》
Robert.C Martin作品,英文名是很相近的《Clean Code》和 《Clean Coder》,应该接替《代码大全2》成为必看系列,因为后者太厚了,而且也有不少过时的东西。
还有一本英文版的《Clean Architecture》,不过讲的是单体应用自身的架构。
《有效的单元测试》
讲代码可读性的书很多,专门教测试代码怎么写得可读的少,而事实上我们很多时间都在维护测试代码,所以推荐下。
拔草:《重构》很厚,但最有价值就是前面几章的洗脑篇。
温伯格的书网上很推崇,《成为技术领导者》之类的,但我觉得年代太远,读起来其实没多大意思,一两个鸡汤观点还要自己从书里慢慢淘,有那功夫不如看点别的。
8、以下是楼主收藏的电子书籍以及java架构学习资料
面试资料
Java核心知识文档
Java核心知识PDF
JVM
JAVA集合
JAVA多线程并发
JAVA基础
Spring 原理
微服务
Netty与RPC
网络
日志
Zookeeper
Kafka
Rabbi tMQ
Hbase
MongoDB
Cassandra
设计模式
负载均衡
数据库
一致性算法
JAVA算法
数据结构
加密算法
分布式缓存
Hadoop
Spark
Storm
YARN
机器学习
云计算
精选马士兵java高并发分布式架构视频
如何获取?
转发这篇文章,关注我,私信回复【学习】即可获取高清大纲,以上 spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构
如何私信?
关注我后,在手机,点进我的主页,主页上方右上角有个私信,点击私信,回复关键字【学习】即可
网友评论