System Design 系統設計學習地圖
Published in
Mar 20, 2021
現在看到的許多系統設計方案,都是許多知名軟體工程師在黑暗的資料泥沼中,整理思緒後得到的光明曙光,此系列文是自我學習系統架構設計筆記,談及的範圍非常非常廣,廣到自己害怕。
目標
- 強化自己系統架構設計能力
- 讓自己的知識體系化到足以向人說明白
前提
- 此系列文大方向將會依照DDIA (Design Data-Intensive Application) 的目錄進行,再根據其他內容進行補充
- 如果想更加深入了解,或是覺得文章寫得爛透了,可以到文章最下方的學習項目觀看原始資料
- 其實非常害怕撰寫系統架構系列的文章,因為內容不一定是對的,但也不一定是錯的,系統架構本身就是一個沒有完全絕對的答案,希望讀者在閱讀的同時,也要自己多方收集資訊。
章節 (文章鏈結Index)
系統架構基礎
分佈式資料
衍生數據
雜項
系統設計學習 — 開始之前最好擁有
物件導向概念 與了解 Design Pattern
或許現在已經不是必須,但在抽象程式方面物件導向還是最重要的概念
網路基礎 (TCP/UDP)
- 理解網路第四層封包傳遞的特徵
OS的基礎
- 理解Multi Thread/Process
- IO
- User and Kernel Layer
資料結構基礎
- Array
- Linked List
- Stack
- Queue
- Tree
- Graph
學習項目
書
- Design Data-Intensive Application (Martin Kleppmann)
- 軟件架構設計 — 大型網站技術架構與業務架構融合之道 (余春龍)
- 大型網站技術架構: 核心原理與案例分析 (李智慧)
極客時間
- 從0開始學架構
- 消息對列高手課
其他資源
少數覺得iT邦幫忙含金量超級無敵高的鐵人挑戰系列文,覺得每個字都充滿精華
此U2 Channel幾乎完整包含了0–1的分散式系統設計
這不用多說了,系統設計面試寶典
此網站比較更像是Open Course的上課筆記,可能還是需要搭配OS雙寶閱讀
- Operating System Concepts (恐龍書)
- Modern operating systems