本系列將以 30 天的時間,從基礎到實戰探索 System Design,整理軟體工程師在設計大型系統時需要掌握的核心觀念。內容將涵蓋 Scalability、Load Balancing、Caching、Database、Message Queue、Microservices、Reliability 等主題,並進一步延伸至 RAG、LLM 與 AI Agent 等現代 AI 系統架構。
除了介紹基本概念,也會透過 URL Shortener、Chat System、Notification System 與 AI Application 等實際案例,一步步拆解需求、分析架構選擇與設計取捨
Day 1|System Design 到底在學什麼?從會寫功能,到會設計一個系統 身為一個軟體工程師,我們平常很常把注意力放在「怎麼把功能做出來」。 例如:...
Day 1 我們先認識了什麼是 System Design,也建立了一個最簡單的 Web Application 架構: User ↓ Frontend...
Day 2 我們了解了一個 Request 從 Browser、DNS、Server 到 Database 的基本旅程。 最簡單的架構可能是: Users...
Day 3 我們介紹了兩種基本的 Scaling 方法: Vertical Scaling → Scale Up Horizontal Scaling →...
前幾天我們把系統從單一 Server 擴展成: ┌── Server #1...
Day 5 我們討論 SQL vs NoSQL,也用 Shopping Cart 設計了 Customer、Product、Cart、Order 與 Trans...
Day 6 我們利用 Database Index 改善 Query Performance。 但假設熱門 Product Page 每秒有: 100,000...
Day 7 我們加入 Cache,減少大量重複的 Database Read。 但 Cache Miss、User-specific Query、Frequen...
Day 8 我們學到 Database Replication:把相同資料複製到其他 DatabaseServer,主要改善 Read Scaling 與 Av...