一本神書:《數據密集型應用系統設計》


我最近在讀一本好書《數據密集型應用系統設計》(也被叫做 DDIA)。這真是本相見恨晚的神書。

數據密集型應用系統設計: Martin Kleppmann 趙軍平呂雲松耿煜李三平: 9787519821968: Amazon.com: Books

這是怎樣一本神書?豆瓣評分高達 9.7 分!

在這里插入圖片描述

什么是「數據密集型應用系統」?

當數據(數據量、數據復雜度、數據變化速度)是一個應用的主要挑戰,那么可以把這個應用稱為數據密集型的。與之相對的是計算密集型——處理器速度是主要瓶頸。

其實我們平時遇到的大部分系統都是數據密集型的——應用代碼訪問內存、硬盤、數據庫、消息隊列中的數據,經過業務邏輯處理,再返回給用戶。

image-20211011223218294

很多軟件都是在解決不同場景下的數據存儲和檢索問題——MySQL,Redis,HBase,Kafka,ElasticSearch……

還有很多技術是圍繞着數據展開——索引,編碼(JSON, XML, Thrift, ProtoBuffer),行列存儲……

當分布式處理數據時,要考慮——數據復制,分區,事務等等。

總之,只要是個程序員,就肯定跟數據打過交道,或多或少對上述軟件與技術有所了解。

我之前在阿里巴巴的主要工作就是跟數據打交道,但我對數據相關的技術只是處於「看山是山」的階段,遠遠沒有達到融會貫通的地步。

在我們學知識的時候,往往都是分門別類的學:這本書講 MySQL 的,那本書講 Redis 的。這種學習方法使知識割裂,很難讓我們掌握不同的技術之間的區別和聯系。

《數據密集型應用系統設計》這本書,把所有跟「數據」有關的知識點進行了整理、歸納、總結,從一個很高的層次把各項技術的共性和區別講得透徹。 當我們懂了底層原理之后,就明白了每項技術產生的背景是什么,解決了什么問題,有什么適用場景。

這本書分為了三部分:

  • 第一部分:數據系統的基石,包括數據模型與查詢語言、存儲與檢索、數據編碼與演化;
  • 第二部分:分布式數據,包括復制、分片、事務、一致性與共識;
  • 第三部分:衍生數據,包括批處理、流處理、數據系統的未來。

我現在剛讀完第一部分,正在讀第二部分。第一部分的第三章「存儲與檢索」真是精華,從一個最簡單的數據庫開始,逐步越講越深入,把常見的數據庫的存儲與檢索方式剖析完了。如果你可以按照第三章的講解,自己動手實現一個數據庫,是絕對可以寫到簡歷里面的。

我在讀《數據密集型應用系統設計》的時候,一邊讀,一邊做筆記。雖然讀的比較慢,但是確實收獲很多。這種書根本就讀不快啊!因為里面處處都是我從未看到過的知識點,只能一邊讀一邊思考。不過,這時間花得值,解決了之前我對「數據」的理解只浮於表面、而沒有深究的問題。

我的讀書筆記

總之,我強烈推薦《數據密集型應用系統設計》這本書。在閱讀的同時也做好筆記,增加知識與大腦摩擦往往能記得更牢哦!

這本書我還在閱讀之中,歡迎大家跟我交流。

 

最后,分享一下資源:

  1. 負雪明燭的讀書筆記:https://fuxuemingzhu.cn/ddia/
  2. 《數據密集型應用系統設計》開源翻譯倉庫:https://github.com/Vonng/ddia
  3. 在線閱讀:https://vonng.gitbooks.io/ddia-cn/content/
  4. 《數據密集型應用系統設計》紙質書(翻譯水平比在線閱讀版好很多,當當網限時 5 折,強烈建議買書):https://st.jingxi.com/pingou/detail.shtml?sku=10030245018628&activeid=16199334571994&tuanid=99999&d=DwUDd3D&s=&from=cps&addpara=&headUrl=&nickname=&hideyl=&cpsjxsid=16341719319890692325

大家是怎么看待這本書呢?可以在評論區中給我留言。

點擊閱讀原文,跳轉到在線閱讀地址。

 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM