System Design 系統設計學習地圖

Charlie Lee
Bucketing
Published in
Mar 20, 2021

現在看到的許多系統設計方案,都是許多知名軟體工程師在黑暗的資料泥沼中,整理思緒後得到的光明曙光,此系列文是自我學習系統架構設計筆記,談及的範圍非常非常廣,廣到自己害怕。

Photo by Markus Spiske on Unsplash

目標

  • 強化自己系統架構設計能力
  • 讓自己的知識體系化到足以向人說明白

前提

  • 此系列文大方向將會依照DDIA (Design Data-Intensive Application) 的目錄進行,再根據其他內容進行補充
  • 如果想更加深入了解,或是覺得文章寫得爛透了,可以到文章最下方的學習項目觀看原始資料
  • 其實非常害怕撰寫系統架構系列的文章,因為內容不一定是對的,但也不一定是錯的,系統架構本身就是一個沒有完全絕對的答案,希望讀者在閱讀的同時,也要自己多方收集資訊。

系統設計學習 — 開始之前最好擁有

物件導向概念 與了解 Design Pattern

或許現在已經不是必須,但在抽象程式方面物件導向還是最重要的概念

網路基礎 (TCP/UDP)

  • 理解網路第四層封包傳遞的特徵

OS的基礎

  • 理解Multi Thread/Process
  • IO
  • User and Kernel Layer

資料結構基礎

  • Array
  • Linked List
  • Stack
  • Queue
  • Tree
  • Graph

學習項目

極客時間

  • 從0開始學架構
  • 消息對列高手課

其他資源

少數覺得iT邦幫忙含金量超級無敵高的鐵人挑戰系列文,覺得每個字都充滿精華

此U2 Channel幾乎完整包含了0–1的分散式系統設計

這不用多說了,系統設計面試寶典

此網站比較更像是Open Course的上課筆記,可能還是需要搭配OS雙寶閱讀

  • Operating System Concepts (恐龍書)
  • Modern operating systems

--

--