原文出
处:http://calvin1978.blogcn.com/art
icles/2015/10
-
-小学生作文的开头:光阴似箭,日
月如梭.....半年过去了,床底下又多
了不少书,更新一个2.0版。
自从技术书的书架设定为”床底下“之
后,又多了很多买书的空间。中国什
么都贵,就是书便宜。
很多书没有全部看完,看一部分觉得
值得推荐就放上来了,但在碎片化的
阅读下难免错评,不定期更新修正。
书架主要针对Java后端开发。
更偏爱那些能用简短流畅的话,把少
壮不努力的程序员所需的基础补回来
的薄书,而有些教课书可能很著名,
但干涩枯燥,喋喋不休的把你带回到
大学课堂上昏昏欲睡,不录。
《
Linux内核设计与实现 - Linux
Kernel Development 第3版》
Robert Love用最薄的篇幅,顺畅的文
字将Linux内核主要的算法讲清楚
了,比《深入理解Linux内核》,
深入Linux内核架构》之类厚厚的
全是代码的,不是专门的内核程序员
看这本足够了。
继续是Robert Love,比起APUE也是
以薄见长,专门针对重要的系统调用
讲解。
操作系统的性能调优、监控、工具和
方法论,看这本就够了,足够厚。还
有本薄一点的,东抄西编格调没那么
高的叫《Linux性能优化大师》。
这么多年过去了,TCP的书好像还是
只有这一本,有点旧了,看了也还是
半懂不懂。后人在2011年写了第二
版,看目录清晰明了与时俱进了很
多,机械工业正在翻译。
如果看LKD未尽兴,可以回头看看这
本基础概念,感觉比那本枯燥的《操
作系统概念》(恐龙书)读起来舒服。
PS. 《UNIX环境高级编程》和
《UNIX网络编程》,APUE和UNP更
多作为一本超厚工具书存在。《Uni x
编程艺术》,扯的都是闲篇,厚厚的
一本其实略读一下就行。
《
数据结构与算法分析-Java语言描述
第2版》
够薄,数据结构与算法分析的点基本
都涵盖了,而且示例代码还是Java写
的。
可与上一本对比着读,厚一些,也多
些图,但知识点没上面的全,也是
Java的。
数学系偏爱无比枯燥很多公式的《算
法导论》,计算机系喜欢这本实用主
义的典型。翻开就看到一段很文艺很
贴心的话:“效率能用数学的严密性
进行精确定义,而简单性就像“美”一
样,很大程度取决于审视者的眼光。
简单的算法更容易理解和实现,因而
相应的程序也往往更少的Bug。当然
对于简单性的美学诉求也是让人无法
抗拒的。 ”
都是专栏文章,讲得并不系统,可以
当兴趣读物来看。
《
恰如其分的软件架构 - 风险驱动的
设计方法》
由于人类与生俱来的惰性,计算机原
本科学的、精准的设计方式,有了敏
捷的借口之后就很难再维持了。本书
就是在这种背景下,提出由风险来决
定设计的度,当然,这个风险是广义
的。除了开始的风险驱动部分,其余
部分就是规规矩矩标标准准的架构师
教科书。
《
软件系统架构:使用视点和视角与
利益相关者合作 第2版》
也是教科书,最难得的是,这本老书
在十年后的去年升级了第二版。
《程序员必读之软件架构 - Software
Architecture for Developers》
作者维护
着codingthearchitecture.com 。不过中
文书名叫“必读”有点过。薄书里的两
部分内容:
1. 编码的架构师:一直是我的职业模
板,我记的笔记 。
2
. 架构的表达: 当年我觉得RUP的
+1 UML视图不足以表达系统时,
4
Si mon Brown的模板给了很好的过渡
范例。
《发布!软件的设计与部署 - Release
It!: Design and Deploy Production-
Ready Software 》
关于高可靠性的软件,学校里不会
教,出来社会却要面对的那部分,英
文的原标题更清晰。
《大型网站技术架构:核心原理与案
例分析》
淘宝出品,大型互联网站的科普入门
书。
继续淘宝出品,分布式文件系统与数
据库的科普入门书。
前几年参加各种技术会议,CAP,最
终一致性,RWN,向量时钟,
Paxos,一致性哈希,Gossip什么的能
灌你一耳朵。而现在,你只要在家安
安静静的看书就够了。不过这个领域
发展太快,期望它可以持续出新版。
PS. 关于设计模式,我以前曾经有过
很多很多本,GOF23啦,企业应用架
构模式啦,EIP啦, POSA 5卷本啦,
反模式啦,JavaEE/SOA/Restful的模
式啦。但现在觉得对新人来说,一本
Java写的《Head First 设计模式》,
知道什么叫设计模式就够了。
人手一本不用多说了。
深入理解虚拟机并不是那么难,Java
程序员都该看看,很多知识其实是必
须的。另外还有几本类似主题的,忽
然一下子都出来了。
虽然后面的章节好像用处不大,前面
有些部分还是值得看,不过Gosling说
圣经有点过了。
事实上,为了保持兼容性,很多项目
还保持在JDK5/6上,这本书一次过将
JDK7/JDK8的更新讲了,虽然讲得还
不全。
Java8终于有函数式的影子了,不要
落后太多,开始尝试跟上节奏。这本
书是TW的Neal Ford面向Java程序员
写的薄书。
《七周七X》系列的开山之作,可能
也是最好的一本。
PS. 《Effective Java》外界一致推
崇,但有点太过誉了。另外
《Thinking in Java》有点旧了,而且
作者思路随意,译者语言晦涩,新程
序员还是建议同时再看两卷《Java核
心技术 - Core Java》。
这本书叫Docker一本就够了,的确够
了,在那些Docker操作指南书之上,
不想着改Docker代码的看它就够了,
别想着什么《Docker源码分析》。
用Redis的工程师桌面必备吧,不用
再多说了。
Zookeeper的书,淘宝出品。
深度与厚度之间,选了这本200页的
薄书,一样有很多的原理与代码解
释,但不会像有的书那样贴20行代码
只写一行字。
虽然网上的吐槽较多,但Netty 快速
入门也只有这一本了。
PS. 最近没买什么新书,随便说点旧
书:
《
程序员修炼之道-从小工到专
家》,Pragmatic Programmer-注重实
效的程序员开山之作,翻译的马达维
文笔也和熊节一样好。
代码整洁之道》和 《程序员的职
业素养》,英文名是很相近的
Clean Code》和 《Clean Coder》,
《
应该接替《代码大全2》成为必看的
系列,因为后者太厚了,而且也有不
少过时的东西,要自己去过滤。
重构》很厚,但最有价值就是前面
几章的洗脑篇,具体实作不如薄薄的
关于敏捷的书,最开始的那本《解析
便找本Scr um的流程看看就够了,
《敏捷开发的艺术》也不错。
《布道之道 - Driving Techni cal
Change:Why People on Yo ur Team Don't
Act on Good Ideas,and How to
Convince Them They Should》,经常
在组织里推行新技术的同学可以看
下,七种怀疑论者模式,脑海中一幅
幅熟悉的面孔。
PS. 温伯格的书网上很推崇,《成为
技术领导者》之类的,但我觉得年代
太远,读起来其实没多大意思,一两
个鸡汤观点还要自己从书里慢慢淘,
有那功夫不如看点别的。
数据库如MySQL,我们DBA太专业,
自己没机会搞。
欢迎大家在评论里补充。
文章持续修订,转载请保留原链
接: http://calvin1978.blogcn.com/artic
les/bookshelf.html




