1. 程式人生 > >一個忙碌架構師的Java後端書架-2018

一個忙碌架構師的Java後端書架-2018

見書單如面。

在這份書單裡,我是這麼一個同學:關心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編碼指南:編寫安全可靠程式的75條建議》、《阿里巴巴Java開發手冊》的《唯品會Java開發手冊》(https://vipshop.github.io/vjtools/)

 

 

補充: 培訓新人最好找《Java核心技術》。最新是第10版,但按JDK近來的升級速度,這書都快追不上了。

要一口吃成個胖子,推薦颯然的《Java工程師修煉之道》,可以作為老鳥培養新人,整個Java後端開發的提綱式材料。

《Java 9模組化開發》,跳票無數回之後,Java9終於支援模組化了,對這方面關心對可以看看。

《響應式程式設計 — RxJava 高階指南》,掘金小冊,連介紹裡的幾篇基礎文章,是響應式程式設計不錯的入門。 https://juejin.im/book/5a09997cf265da432002bf6a

拔草:《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. 團隊的書

敏捷的書高度重複,看哪本都差不多,比如最開始那本《解析極限程式設計--擁抱變化》就行,但沒得賣了。

其他如《硝煙中的Scrum 和 XP》,《學習敏捷》,《敏捷開發的藝術》都不錯。

 

 

 

阻止大家買書的原因,一是沒有地方放,二是沒有時間看。好在Kindle上的書漸漸多了,解決了第一個問題。但第二個問題更難,所以我也沒看完所有,但起碼翻到了可以下判斷的時候。


歡迎工作一到十年的Java工程師朋友們加入Java進階高階架構:828545509

本群提供免費的學習指導 架構資料 以及免費的解答

不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導