微信公衆号【Java技術江湖】一位阿裡 Java 工程師的技術小站。(關注公衆号後回複”Java“即可領取 Java基礎、進階、項目和架構師等免費學習資料,更有資料庫、分布式、微服務等熱門技術學習視訊,内容豐富,兼顧原理和實踐,另外也将贈送作者原創的Java學習指南、Java程式員面試指南等幹貨資源)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyMWMjZWZjFDZ3ADOlZmZwkTM3MzYhF2NlNWZ0kTY4QWYzYTZkRWZj9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
我的Java後端書架 (2016年暖冬4.0版)
原文出處:
江南白衣書架主要針對Java後端開發。
3.0版把一些後來買的、看的書添補進來,又或删掉或降級一些後來沒有再翻開過的書。
更偏愛那些能用簡短流暢的話,把少壯不努力的程式員所需的基礎補回來的薄書,而有些教課書可能很著名,但幹澀枯燥,喋喋不休的把你帶回到大學課堂上昏昏欲睡,不錄。
1. 作業系統與網絡的書
《Linux核心設計與實作 第3版》Robert Love用最薄的篇幅,順暢的文字将Linux核心主要的算法講清楚了,
《深入了解Linux核心》,
《深入Linux核心架構》之類厚厚的全是代碼,不是專門的核心程式員看這本足夠了。
《Linux系統程式設計 第2版》繼續是Robert Love,比起APUE也是以薄見長,專門針對重要的系統調用講解。
《性能之巅》作業系統的性能調優、監控、工具和方法論,看這本就夠了,已經足夠厚,可能是書單裡最厚的一本。
《TCP/IP詳解 卷1:協定》這麼多年過去了,TCP的書好像主要還是隻有這一本,有點舊了,看了也還是半懂不懂的。後人在2011年寫了
第二版,機械工業正在翻譯。
《WireShark網絡分析就這麼簡單》和
《WireShark網絡分析的藝術》new!
多少人,是看了這兩本輕松又實戰的書,才真正了解TCP的細節。
PS:
《UNIX環境進階程式設計》和
《UNIX網絡程式設計》,APUE和UNP更多作為一本超厚工具書存在。
《Unix 程式設計藝術》,扯的都是閑篇,厚厚的一本其實略讀一下就行。
《現代作業系統 第3版》如果看LKD未盡興,可以回頭看看這本基礎概念,感覺比那本枯燥的
《作業系統概念》(恐龍書)讀起來舒服。
《TCP/IP指南》前面wireshark書作者的推薦,網上有英文免費版,然後有中文版的
卷1 卷2,但可能那麼多章節那麼厚你隻關心TCP和HTTP兩部分。
《HTTP權威指南》,同樣是自己從厚厚的目錄裡挑選感興趣的章節來看。另外,那些日本南韓人寫的《圖解XXX》感覺都不喜歡,真的不行。
2. 算法的書
《資料結構與算法分析-Java語言描述 第3版》夠薄,資料結構與算法分析的點基本都涵蓋了,而且喜歡它的示例代碼是Java寫的,新出了第3版。
《算法 第4版》可與上一本對比着讀,厚一些,也多些圖,但知識點沒上面的全,也是Java的。
PS:
《數學之美》、
《程式設計珠玑》,都是專欄文章,講得并不系統,可以當興趣讀物來看。
《算法設計與分析基礎 第3版》數學系偏愛無比枯燥很多公式的
《算法導論》, 計算機系喜歡這本實用主義的典型。
3. 架構設計的書
《軟體系統架構:使用視點和視角與利益相關者合作 第2版》也是教科書,最難得的是,這本老書在十年後的去年更新了第二版,是以感覺鮮活了好多,也許是最鮮活的一本架構書。
《恰如其分的軟體架構 – 風險驅動的設計方法》由于人類與生俱來的惰性,計算機原大學學的、精準的設計方式,有了靈活的借口之後就很難再維持了。本書就是在這種背景下,提出由風險來決定設計的度。除了開始的風險驅動部分,其餘部分就是規規矩矩标标準準的架構師教科書。
《釋出!軟體的設計與部署 – Release It!: Design and Deploy Production-Ready Software 》關于高可靠性的軟體,學校裡不會教,出來社會卻要面對的那部分,英文的原标題更清晰。
《大型網站技術架構:核心原理與案例分析》淘寶出品,大型網際網路站的科普入門書。
《高擴充性網站的50條原則》同是入門級讀物,如果還有個高可用50條原則,那就齊了。
《微服務設計》那麼多微服務的書,還是這本比較不像賺快錢的。
《大資料日知錄》前幾年參加各種技術會議,CAP,最終一緻性,RWN,向量時鐘,Paxos,一緻性哈希,Gossip什麼的能灌你一耳朵。而現在,你隻要在家安安靜靜的看書就夠了。不過這個領域發展太快,又一年過去了,期望它可以持續出新版。
PS: 關于
設計模式,我以前曾經有過很多很多本,GOF23啦,企業應用架構模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦。但現在覺得對新人來說,一本Java寫的
《Head First 設計模式》,知道什麼叫設計模式就夠了。
《程式員必讀之軟體架構》作者維護着
codingthearchitecture.com。不過中文書名叫“必讀”有點過。
4. 語言的書
《Java并發程式設計實戰》Java并發經典,人手一本不用多說了。
《實戰Java高并發程式設計》國人新作,流暢易讀,内容也比上面一本來得新。
《深入了解 Java 虛拟機 第2版》了解虛拟機并不是那麼難,Java程式員來說,很多知識其實是必須的。另外還有幾本類似主題的書,忽然一下子都出來了。
《Java性能權威指南》比起多年前那部調優聖經,講得更加深入,也更加貼近現在的JDK。可以從裡面挑些知識點來,做Java調優的面試題。
《有效的單元測試》不同于那些動辄BDD的高深書籍,專注于如何寫“好”的,可維護的單元測試,拿來給團隊看,能省很多口水。
《七周七語言》《七周七X》系列的開山之作,可能也是最好的一本。
外界一緻推崇,但有點太過譽了。另外
《Thinking in Java》有點舊了,而且作者思路随意,譯者語言晦澀,新程式員還是建議同時再看兩卷
《Java核心技術 - Core Java》。
5. 具體技術的書
《Docker: 容器與容器雲》這本書叫Docker一本就夠了,的确夠了,在那些Docker操作指南書之上。不想着改Docker代碼的看它就夠了,别想着什麼《Docker源碼分析》。
《Redis設計與實作分析》用Redis的工程師桌面必備吧。
《分布式服務架構:原理與實踐》如果要寫一個SOA架構,要留意的方方面面。
《Spark技術内幕》深度與厚度之間,選了這本200頁的薄書,一樣有很多的原理與代碼解釋,但不會像有的書那樣貼20行代碼隻寫一行字。
《Netty權威指南 第2版》雖然網上的吐槽較多,但Netty 快速入門也隻有這一本了。
6. 程式員的自我修養
PS. 最近沒買什麼新書,随便說點舊書:
《程式員修煉之道-從小工到專家》,Pragmatic Programmer-注重實效的程式員開山之作,翻譯的馬達維文筆也和熊節一樣好。
《代碼整潔之道》 《程式員的職業素養》,英文名是很相近的《Clean Code》和 《Clean Coder》,應該接替
《代碼大全2》成為必看的系列,因為後者太厚了,而且也有不少過時的東西,要自己去過濾。
《重構》很厚,但最有價值就是前面幾章的洗腦篇,具體實作不如薄薄的
《重構手冊》關于靈活的書,最開始的那本
《解析極限程式設計–擁抱變化》就很好,再随便找本Scrum的流程看看就夠了,
《靈活開發的藝術》也不錯。
《布道之道 – Driving Technical Change:Why People on Your Team Don’t Act on Good Ideas,and How to Convince Them They Should》,經常在組織裡推行新技術的同學可以看下,七種懷疑論者模式,腦海中一幅幅熟悉的面孔。
PS. 溫伯格的書網上很推崇,《成為技術上司者》之類的,但我覺得年代太遠,讀起來其實沒多大意思,一兩個雞湯觀點還要自己從書裡慢慢淘,有那功夫不如看點别的。
7. 沒有覆寫到的内容
資料庫如MySQL,我們DBA太專業,自己沒機會搞。