见书单如面,转自江南红衣from夏天的门口
在这份书单里,我是那么一个朋友:关心Java,关心构架,对文字有一定的洁癖;基础知识懂一些,但忙,不会花太多时间来研究算法和OS;须要把握一个软件时会买一本XXinAction,但不买那个各色安装手册、使用指南的。
假如你和我差不多的趣味,那这份书单会适宜你。
为了防止混淆,书名的颜色分类,蓝色是拔草,红色是种草(起码不适宜本文的预设读者)
1.国外一线的书
说到小型互联网站的建设,我们在世界上也是一流的,比美国这些咨询师写的更深味其中艰难。
《高可用构架(第一卷)》
厚厚的一本,新浪微博TimYang牵头的高可用构架社区,几十个一线实战案例的结集分享,从头看起的话只恨自己时间不够多。
《大型网站:构架演化与性能优化》
薄薄的一本,去年新书,天猫的分布式、无线化、中台化、单元化的历程与优化,同样是满满的一线经验。
《大型网站技术构架:核心原理与案例剖析》
同是天猫系薄书,假如一个新人步入到小型互联网站,这是最好的入门科书普。
《亿级流量网站构架核心技术》
易迅开涛作品,好多技术掰细了讲,所以也蛮厚的。
《京东基础构架建设之路》
从早前的.Net,到现在大量自研组件的体系,可以给兄弟单位的基础构架部做参考。
《进化-运维技术改革与实践探求》
赵成的极客时间,印成书了。运维书里难得讲看法而不是工具使用的书:"运维能力是整体技术构架能力的彰显,运维层面爆发的故障一定是整体技术构架中存在问题,割裂二者,单纯的看技术构架或运维都是毫无意义的。"
2.美国互联网构架的书
《SRE:Google运维揭秘》
自编广告词:“地球上有那么一个团队,将运维推向极限高度”。SRE的事情,好多是基础构架部的事情。去年的续集,《TheSiteReliablityWorkbook》。
《发布!软件的设计与布署》
Nygard作品,关于高可靠性的软件,中学里不会教,下来社会却要面对的那部份。英语原标题里,“软件”的完整抒发是“Production-ReadySoftware”
《DevOps软件构架师行动手册》
DevOps的书里难得地讲基本原则,而不是讲具体用哪些监控软件。
《微服务设计》
微服务开山之作,这么多微服务的书红旗linux6.0,这本只谈原则而不会写一堆具体框架的使用。
《生产微服务》
再度被英文编辑的书名击败,虽然是《Production-ReadyMicroservices》,作者以在Uber的经验,讲一个满足基本业务逻辑之外,生产可用的微服务的检测表。
附加:有两本中文标题明明是Scalability的书,英文编辑硬是改为《架构即未来》,《架构真经》,后者有我们前CTO推荐不敢乱说,前者似乎是第二版还是认为有点过时,你们自己看目录判定了。
3.构架师基础的书
《恰如其分的软件构架-风险驱动的设计方式》
因为人类与生俱来的惰性,计算机起初科学的、精准的设计方法,有了敏捷的托词以后就很难再维持了。本书就是在这些背景下,提出由风险来决定设计的度。不仅开始的风险驱动部份,其余部份就是规规矩矩标标准准的构架师教科书。
《软件系统构架:使用视点和视角与利益相关者合作第2版》
也是教科书,最难得的是,这本老书在六年后的2011年年升级了第二版,所以觉得鲜活了很多,似乎是最鲜活的一本构架书。
附加:说起更新,《SoftwareArchitectureinPractice3rd》也在2012年更新,《DocumentingSoftwareArchitectures2nd》在2010年更新,不过中规中矩,没这么大吸引力让人去啃中文了。
种草:关于设计模式,我曾经以前有过好多本,GOF23啦,企业应用构架模式啦,EIP啦,POSA5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦。但如今认为对新人来说,一本Java写的《HeadFirst设计模式》,晓得哪些叫设计模式就够了。
UML相关的书,虽然UML只在哪个轻度文档的年代会彰显统一的作用,现今大伙都是如何抒发清楚如何来,最多简单用下类图和时序图了。
4.Java语言的书
《Java8实战》
Java8的新特点讲得最全最仔细的,Java8是一道坎,好多程序员如今还没迈过去。英语版有重画了unix环境高级编程中文版,面向JDK9的《ModernJavainAction》。
《Java性能权威手册》
黑色的这本,比起多年前那部调优新约,讲得愈发深入,也愈发紧贴现今的JDK。英语版还有一本《OptimizingJava》。
《深入理解Java虚拟机第2版》
理解虚拟机并不是这么难,Java程序员来说,好多知识显然是必须的。
《Java并发编程实战》
Java并发精典,人手一本不用多说了。
《实战Java高并发程序设计》
国人之作,流畅易读,内容也比前面一本新一些。
《EffectiveJava2nd》
Java编码规范与手册,中文版有覆盖JDK9的第三版。
私家推荐,结合了它和《Java编码手册:编撰安全可靠程序的75条建议》、《阿里巴巴Java开发指南》的《唯品会Java开发指南》()
极客时间:
《Java核心技术36讲》是Oracle做Java平台部门的杨晓峰的专栏,Java里好多关键点都提到了。
《深入拆解Java虚拟机》是Oracle里做新一代Graal编译器的中级研究员郑雨迪对JVM的深入讲解,能坚持看完的朋友平常都可以装一副很懂的样子了。
补充:培训新人最好找《Java核心技术》。最新是第10版,但按JDK最近的升级速率,这书都快追不上了。
要一口吃成个瘦子,推荐飒然的《Java工程师修练之道》,可以作为老手培养新人,整个Java前端开发的提纲式材料。
《Java9模块化开发》,炒冷饭无数回以后,Java9总算支持模块化了,对这方面关心对可以瞧瞧。
《响应式编程—RxJava高阶手册》,鹈鹕小册,连介绍里的几篇基础文章,是响应式编程不错的入门。
种草:《ThinkinginJava》有点太旧了,但是作者思路随便,译者语言艰深。《Java性能优化权威手册》多年前的调优新约早已旧的没谱。
5.操作系统与网路的书
《Linux内核设计与实现第3版》
业内简写LKD。RobertLove用最薄的篇幅,顺畅的文字将Linux内核主要的算法讲清楚了,《深入理解Linux内核》之类厚厚的全是代码,不是专门的内核程序员看这本足够了。
《性能之巅》
BrendanGregg的书,火焰图的推广者,在Netflix专攻性能。操作系统的性能调优、监控、工具和技巧论,看这本就够了,早已足够厚,可能是书单里最厚的一本,但值得作为一本床垫书。
《WireShark网路剖析就如此简单》和《WireShark网路剖析的艺术》
多少人,是看了这两本轻松又实战的书,才真正理解TCP的细节。
《深入理解计算机系统第3版》
假如实在认为家里没本书镇楼心中不塌实,就买这一本unix环境高级编程中文版linux操作系统好吗,也是左鼻子耗子力荐的一本。
附加:《现代操作系统第3版》如果看LKD未扫兴,可以回头瞧瞧这本基础概念,觉得没《操作系统概念》(恐龙书)这么无趣。
《TCP/IP解读卷1:合同第2版》这么多年过去了,TCP的书似乎还是只有英年病逝的作者的这一本。后人写的第二版也下来,厚了好多。
种草:《UNIX环境中级编程》和《UNIX网路编程》,简写为APUE和UNP,不写C的朋友虽然没啥用。《Unix编程艺术》,扯的都是闲篇,厚厚的一本默读一下就行。
另外,这些台湾美国人写的《图解XXX》都不喜欢。
6.算法的书
《数据结构与算法剖析-Java语言描述第3版》
够薄,数据结构与算法剖析的点基本都囊括了,但是示例代码是Java写的,新出了第3版。
《算法第4版》
可与上一本对比着读,厚一些,也少些图,但知识点没里面的全,也是Java的。
附加:《数学之美》、《编程珠玑》,都是专栏文章,讲得并不系统,可以当兴趣读物来看。
种草:无比沉闷好多公式的《算法简史》,《计算机程序设计艺术》就留给非常厉害的朋友去读了。
7.程序员的自我修养
《程序员修练之道-从小工到专家》
PragmaticProgrammer--重视实效的程序员系列的开山之作。
《代码整洁之道》和《程序员的职业素质》
Robert.CMartin作品,中文名是很相仿的《CleanCode》和《CleanCoder》,应当接替《代码大全2》成为必读系列,由于前者太厚了,但是也有不少过时的东西。
还有一本中文版的《CleanArchitecture》,不过讲的是单体应用自身的构架。
《有效的单元测试》
讲代码可读性的书好多,专门教测试代码如何写得可读的少,而事实上我们好多时间都在维护测试代码,所以推荐下。
种草:《重构》很厚,但最有价值就是上面几章的洗脑篇。
温伯格的书网上很推崇,《成为技术领导者》之类的,但我认为年代太远,读上去似乎没多大意思,一两个鱼汤观点还要自己从书里渐渐淘,有那工夫不如看点别的。
8.团队的书
敏捷的书高度重复,看哪本都差不多,例如最开始那本《解析极限编程--拥抱变化》就行,但没得卖了。
其他如《硝烟中的Scrum和XP》,《学习敏捷》,《敏捷开发的艺术》都不错。
制止你们买书的缘由,一是没有地方放,二是没有时间看。好在Kindle上的书逐渐多了,解决了第一个问题。但第二个问题更难,所以我也没看完所有,但至少翻到了可以下判定的时侯。
一个人看的书有限,欢迎你们留言推荐其他好书。