學習是技術人員成長的基礎,本次分享20本技術方面的書籍,這些書不是每一本都是經典,但是每一本都有其特點。以下20本大部分本人看過,因此推薦給大家。包含大型網站架構系列, 分散式系統系列,BAT技術文學系列,架構設計系列。
學習是技術人員成長的基礎,本次分享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<[email protected]> 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.尊重知識產權。