1. 程式人生 > >我的 Java 後端書架

我的 Java 後端書架

我的Java後端書架

本書架主要針對Java後端開發與架構。

更偏愛那些能用簡短流暢的話,把少壯不努力的程式設計師所需的基礎補回來的薄書,而有些教課書可能很著名,但乾澀枯燥,喋喋不休的把你帶回到大學課堂上昏昏欲睡,不錄。  

1. 作業系統與網路的書

《Linux核心設計與實現 第3版》 Robert Love用最薄的篇幅,順暢的文字將Linux核心主要的演算法講清楚了,《深入理解Linux核心》《深入Linux核心架構》之類厚厚的全是程式碼,不是專門的核心程式設計師看這本足夠了。

《Linux系統程式設計 第2版》 繼續是Robert Love,比起APUE也是以薄見長,專門針對重要的系統呼叫講解。

《效能之巔》 作業系統的效能調優、監控、工具和方法論,看這本就夠了,已經足夠厚,可能是書單裡最厚的一本。

《TCP/IP詳解 卷1:協議》 這麼多年過去了,TCP的書好像主要還是隻有這一本,有點舊了,看了也還是半懂不懂的。後人在2011年寫了第二版。

6b94fffc8723fd5ac7e7d5ebdfd6bb542c53bafb

PS:《UNIX環境高階程式設計》《UNIX網路程式設計》,APUE和UNP更多作為一本超厚工具書存在。《Unix 程式設計藝術》,扯的都是閒篇,厚厚的一本其實略讀一下就行。  《現代作業系統 第3版》如果看LKD未盡興,可以回頭看看這本基礎概念,感覺比那本枯燥的《作業系統概念》(恐龍書)讀起來舒服。

《TCP/IP指南》 前面wireshark書作者的推薦,網上有英文免費版,然後有中文版的

卷1卷2,但可能那麼多章節那麼厚你只關心TCP和HTTP兩部分。《HTTP權威指南》,同樣是自己從厚厚的目錄裡挑選感興趣的章節來看。

另外,那些日本韓國人寫的《圖解XXX》感覺都不喜歡。

2. 演算法的書

《資料結構與演算法分析-Java語言描述 第3版》 夠薄,資料結構與演算法分析的點基本都涵蓋了,而且喜歡它的示例程式碼是Java寫的,新出了第3版。

《演算法 第4版》 可與上一本對比著讀,厚一些,也多些圖,但知識點沒上面的全,也是Java的。

c3b07a84f4054e925cf9eb4fdda801e42034c45d

PS: 《數學之美》《程式設計珠璣》,都是專欄文章,講得並不系統,可以當興趣讀物來看。

3. 架構設計的書

《軟體系統架構:使用視點和視角與利益相關者合作 第2版》

也是教科書,最難得的是,這本老書在十年後的去年升級了第二版,所以感覺鮮活了好多,也許是最鮮活的一本架構書。

《恰如其分的軟體架構 - 風險驅動的設計方法》 由於人類與生俱來的惰性,計算機原本科學的、精準的設計方式,有了敏捷的藉口之後就很難再維持了。本書就是在這種背景下,提出由風險來決定設計的度。除了開始的風險驅動部分,其餘部分就是規規矩矩標標準準的架構師教科書。

《SRE:Google運維解密》 廣告詞是 “地球上有這麼一個團隊,將運維推向極限高度”,稍嫌標題黨,很多值得翻的東西。

《釋出!軟體的設計與部署》 關於高可靠性的軟體,學校裡不會教,出來社會卻要面對的那部分,英文的原標題更清晰。

《高擴充套件性網站的50條原則》 同是入門級讀物,如果還有個高可用50條原則,那就齊了。

《微服務設計》 那麼多微服務的書,還是這本比較不像賺快錢的。

《大資料日知錄》 前幾年參加各種技術會議,CAP,最終一致性,RWN,向量時鐘,Paxos,一致性雜湊,Gossip什麼的能灌你一耳朵。而現在,你只要在家安安靜靜的看書就夠了。不過這個領域發展太快,又一年過去了,期望它可以持續出新版。

5adb40b625c23d05bec45360e1e22bf05c8e6605

PS: 關於設計模式,我以前曾經有過很多很多本,GOF23啦,企業應用架構模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦。但現在覺得對新人來說,一本Java寫的《Head First 設計模式》,知道什麼叫設計模式就夠了。

4. Java語言的書

《Java併發程式設計實戰》 Java併發經典,人手一本不用多說了。

《Java8 實戰》 Java8的新特性講得最全最仔細的。

《深入理解 Java 虛擬機器 第2版》 理解虛擬機器並不是那麼難,Java程式設計師來說,很多知識其實是必須的。另外還有幾本類似主題的書,忽然一下子都出來了。

《Java效能權威指南》 比起多年前那部調優聖經,講得更加深入,也更加貼近現在的JDK。可以從裡面挑些知識點來,做Java調優的面試題。

《有效的單元測試》 不同於那些動輒BDD的高深書籍,專注於如何寫“好”的,可維護的單元測試,拿來給團隊看,能省很多口水。

e3900adbc9ea67385fe750a98e35d50012a248a5

5. 程式設計師的自我修養

PS. 最近沒買什麼新書,隨便說點舊書:

《程式設計師修煉之道-從小工到專家》,Pragmatic Programmer-注重實效的程式設計師開山之作,翻譯的馬達維文筆也和熊節一樣好。

《程式碼整潔之道》和 《程式設計師的職業素養》,英文名是很相近的《Clean Code》和 《Clean Coder》,應該接替《程式碼大全2》成為必看的系列,因為後者太厚了,而且也有不少過時的東西,要自己去過濾。

《重構》很厚,但最有價值就是前面幾章的洗腦篇,具體實作不如薄薄的《重構手冊》

關於敏捷的書,最開始的那本《解析極限程式設計--擁抱變化》就很好,再隨便找本Scrum的流程看看就夠了,《敏捷開發的藝術》也不錯。

《佈道之道》,經常在組織裡推行新技術的同學可以看下,七種懷疑論者模式,腦海中一幅幅熟悉的面孔。

PS. 溫伯格的書網上很推崇,《成為技術領導者》之類的,但我覺得年代太遠,讀起來其實沒多大意思,一兩個雞湯觀點還要自己從書裡慢慢淘,有那功夫不如看點別的。

歡迎工作一到五年的Java工程師朋友們加入Java架構開發:828545509 

群內提供免費的Java架構學習資料 (裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka ,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己 每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!