學習是技術人員成長的基礎,本次分享20本技術方面的書籍,這些書不是每一本都是經典,但是每一本都有其特點。以下20本大部分本人都看過,因此推薦給大家。(本次推薦的20本只是一個參考,比如像Head First,Java程式設計思想等經典書籍是大家都知道,因此不在推薦之列)
本次分享大綱
- 大型網站架構系列
- 分散式系統系列
- BAT技術文學系列
- 架構設計系列
- 本次分享總結
一、大型網站架構系列
第一本:《大型網站技術架構:核心原理與案例分析》
這是本算是國內大型網站架構的經典之作,由阿里人李智慧創作,聽名字就知道本書很有智慧。主要從大型網站架構的特點,架構目標(高效能,高可用,可伸縮等)基本理論講起,並介紹了幾個很有特色的案例。
之前群內分享的大型網站架構系列的基礎理論大部分出自此書。
第二本:《大型網站系統與Java中介軟體實踐》
同樣出自阿里的技術牛人。此書對分散式系統的演進做了較好的介紹。對常用中介軟體(服務框架,資料訪問層,訊息中介軟體)做了比較深入的講解。(原理到實踐都有了)
第三本:《大型分散式網站架構設計與實踐》,很抱歉本書也出自阿里系。
對面向服務的架構,分散式基礎設施(快取,持久化,訊息系統,搜尋引擎(lucence,solr)),網際網路安全架構,系統穩定性,資料分析等做了較好的講解。
以上三本書,都出自阿里系,有理論有實踐,如果要學到知識,還需要多讀,多想,多實踐。比如第一本,個人看了至少5遍以上。其他兩天也在三遍左右。
第四本:《Web資訊架構——設計大型網站》
可以較系統的建立網站資訊架構設計的思想。對思考如何設計一個大型網站比較有幫助。
資訊架構,注意這幾個詞所涉及的知識。
第五本:《高效能網站建設》,對web前端架構做了非常好的講解。
注意此處的前端不只是 JS,CSS,HTML,是指業務邏輯層之前的部分。包括快取,DNS等。
第六本:《實用負載均衡技術:網站效能優化攻略》,本書較詳細的介紹了負載均衡,快取代理等知識,對系統瞭解負載均衡技術有幫助。
第七本:《高效能電子商務平臺構建:架構、設計與開發》,本書可以作為功能架構參考,因為他講的是國內一個開源商城的架構。一方面作者可能是為了推廣他的開源商城,因此建議初學者或者想了解此開源系統的人學習。不建議所有人學習。
第八本《高效能網站構建實戰》,建議運維人員可以參考。裡面介紹了LVS+KeepAlived實現高可用叢集,高效能負載均衡器HAProxy,經久不衰的Squid,高效能快取伺服器Varnish,Ngnix等。裡面有大量的安裝指令碼,因此建議運維或想了解如何部署的參考學習。
以上是分享的八本關於大型網站架構的書籍。
二、分散式系統系列
第一本:《從Paxos到Zookeeper:分散式一致性原理與實踐》,這一本是Leader-us老師推薦的。對於瞭解分散式和Zookeeper很有幫助。內容有一致性協議,2PC,3PC,Paxos演算法,Paxos的工程實踐,Zookeeper的安裝使用, ZooKeeper的典型應用場景等。本書也出自阿里系。
第二本:《ZeroC Ice權威指南》,作者是我們群內的S級資深架構師Leader-us老師所著。
對於學習Zeroc Ice很有幫助。Zeroc Ice是與dubbo類似的一套框架。可以實現RPC和服務治理。
關於更多ZeroC Ice知識,可以諮詢Leader-us。
第三本:《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸》是介紹Docker和Kubernetes比較不錯的一本書。作者也有我們的Leader-us老師。
第四本:《大規模分散式儲存系統:原理解析與架構實戰》,對了解分散式儲存有一定的幫助。
從單機儲存到分散式儲存,事務,併發控制等。對常用的分散式儲存系統,鍵值系統,表格系統,分散式資料庫等有較好介紹。理論和實踐都有,如果自己沒實際去思考去做,都可以歸為理論。
分散式系統,大資料方面了這次就不介紹了。感興趣的可以群內諮詢。
三、BAT技術系列
推薦三本技術文學類書籍。第一本是《淘寶技術這十年》,第二本是《京東技術解密》,第三本是《華為研發》
第一本:《淘寶技術這十年》群內有電子版,個人看了至少三遍以上。生動形象的介紹了淘寶從小到大的技術發展歷程。對思考技術發展有較好的幫助
第二本:《京東技術解密》,可以作為參考吧,本人買了一本,但還沒詳細看。總體來看,《淘寶技術這十年》質量和內容上更好一些。
第三本《華為研發》本人幾年前看的是第一版,現在又第二版了。此書對華為技術的發展和管理變革有一定了解,從而指導自己對技術管理進行一些改進。
小插曲:談一下技術和管理在個人發展中的看法。
人工作有十年了,做過幾年技術也做過幾年管理。在個人的經歷中,對技術和管理有一些不同的看法。
首先,做幾年技術後發現希望做管理,做管理後發現想做技術。經過思考發現是自己對技術和管理認識不足,知識掌握不對。
比如技術如果不能提高到架構師級別,就只能code,這樣一年一年薪資不漲也基本看到了盡頭。
因此做技術必須要做到架構師級別。(可能話有點慢),但是個人最近的感悟。只有做到架構級別,從一定的高度思考技術問題,才能不會被淘汰。
Leader-us<springcomingagain@qq.com> 20:18:01
專注技術,同時培養技術派的領導能力,經驗越豐富,越需要在IT圈裡培養知名度,參與開源或者很多技術獲得
因此,我做管理後,又轉到了技術。到現在基本瞭解如何去做一個架構師了。
到這個時候,發現應該去做管理。
呵呵~~因為個人的發展模式是技術+管理的模式發展。以下是架構,管理方面成長的知識參考。
架構方面:物件導向,設計模式,架構模式,分散式系統,業務架構(常用系統架構),具體技術廣度和深度等;
管理方面:專案管理(PMP,PRINCE2),敏捷管理,流程規範(CMMI等),通用管理知識等。
四、架構設計系列
第一本:《研磨設計模式》,這本書詳細對GOF設計模式進行了講解。
設計模式講的比較細緻,透徹。傳說網上有研磨設計模式作者的視訊。有的可以分享一下。
這是本人推薦的詳細學習設計模式的第一本書。
像HeadFirst這類的就不說了。
大話設計模式也可以看下,不過入門可以,但深入研究就需要看別的了。
第二本:前幾天給大家推薦過《物件導向葵花寶典》,對理解物件導向思想有一些幫助。對物件導向理解做了較到位的描述。
第三本:《.NET應用架構設計:原則、模式與實踐》,不過這本是NET寫的。對常用的架構模式做了介紹。比如N層設計,業務層設計,邏輯層設計,服務層設計,資料層設計等。對了解各層的設計方法有不錯的幫助。本人看這本書也至少三遍以上。
比如在服務設計中有一個冪等的模式,是分散式系統中較長用到的。
第四本:《Microsoft .NET企業級應用架構設計》,與《NET應用架構設計:原則、模式與實踐》想對應的是本書也是從業務層,服務層,等進行架構模式的架構。講解的方式有點不同。雖然是NET語言的,但是對Java或其他語言都有幫助。比如:假如一個人說MVC是設計模式,你就懂的MVC是架構模式。
第五本:最後,再給大家分享一本架構的書。原因是技術積累會成為類庫,類庫逐漸會變為框架。一個人架構設計的能力,很大程度體現在框架設計方面。因此,最後一本書是《架構探險:從零開始寫Java Web框架》
本書從零開始,介紹瞭如何搭建一個web框架。bean實現,aop實現等。本書個人讀了兩遍,感覺對設計框架和封裝模組有一定的幫助。
五、本次分享總結
以上是本週的分享,原計劃分享訊息佇列技術,但考慮到如果能分享一些書籍可能對大家幫助更大,也是之前答應某些群友的,並且是16年第一次分享,因此臨時改為分享技術書籍。希望對大家有幫助,分享的書籍大部分是個人看過的,可能不是最好的,但每一本都有亮點。這次分享出來,供大家學習參考。
最後,再次倡議大家購買紙質書,1.對眼睛好;2.尊重智慧財產權。