---
# System prepended metadata

title: 內行人才知道的系統設計面試指南

---

# 系統設計讀書會：內行人才知道的系統設計面試指南, 第一版

## 背景

這半年比較多都是在解探索性的需求需求（例：會議、地圖系統、跨裝置、IoT 通訊），覺得 AI 可以在一開始輔助畫出 PRD ，但身為開發者的責任，還是要負責評價這份系統設計做得好不好，因此想要閱讀系統設計相關的書籍，來拓展自己對不同產品的理解。

前陣子是看到 [codeframer 大大](https://codefarmer.substack.com/p/system-design-beginner-notes) 在踩系統設計的坑，才想說可以試試看～

### 關於這本書

> 這本書是由老牌系統設計頻道 [ByteByteGo](https://bytebytego.com) 出的系統設計書，比較多是在講如何規劃雲端、後端系統等，有興趣可以翻翻看[電子書](https://books.google.com.tw/books?id=Lo1WEAAAQBAJ&pg=PA1&hl=zh-TW&source=gbs_toc_r&cad=2#v=onepage&q&f=false)。

![FozfoKNVhTOV1WIuJMgfdw](https://hackmd.io/_uploads/H1e4vvlDge.jpg)


自己也有點興趣如何回答老牌的面試題：

- 設計一個百萬流量的 DB
- 設計爬蟲程式...

### 對讀書會的期待


- **練習系統設計**：希望是一個人準備一個案例，先是讀過背景，然後提出屬於自己的 [PRD](https://docs.google.com/document/d/1mEMDcHmtQ6twzNlpvF-9maNlAcezpWDtCnyIqWkODZs/edit?tab=t.0#heading=h.7ueoyja6ijay)，也很想知道架構如何套到程式碼、或是補充實際案例（這一塊書比較缺乏、要花時間補充）。

- **準備面試題**：比較務實還是會回到 -- 如果是你，會如何回答這題系統面試的題目，以及面對實際需求為主～

- **前端跨全端**：由於專有名詞比較多，自己本身也是主要是寫前端，並不是對 backend 細節都很熟，可能也會根據參與者的 Tech Stack 穿插一些如 [AWS DAV-C02](https://aws.amazon.com/tw/certification/certified-developer-associate/) 的先備知識，或是先熟悉基礎設施才會跳進書的內容，如：
    - Week1 導論
        - 討論：什麼是好的 PRD? 技術文件簡介
        - 第三章：系統設計面試框架
    - Week2 導論：介紹 AWS 基礎設施 or 網路概論
    - Week3 Case1: 百萬流量的系統設計
    - Week4 Case2: ...
    - 小結
    
    也很期待與不同職能的夥伴一起討論：）
    

## 預計規劃

### 參考資料

1. [（必）內行人才知道的系統設計面試指南, 第一版](https://www.tenlong.com.tw/products/9789865028855)
2. [（必）PRD Template](https://docs.google.com/document/d/1mEMDcHmtQ6twzNlpvF-9maNlAcezpWDtCnyIqWkODZs/edit?tab=t.0#heading=h.7ueoyja6ijay) -- 用於聚焦想法、規劃用
3. [（選）Ultimate AWS Certified Developer Associate 2025 DVA-C02](https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/?couponCode=MT240725G1) -- AWS 系統簡介
4. [（選）Full Stack for Front-End Engineers, v3](https://frontendmasters.com/courses/fullstack-v3/) -- 自己一開始前端往全端學習的付費參考教材
5. [（其他）架構圖工具：Mermaid](https://mermaid.js.org)
6. [（其他）架構圖工具：PlantUML](https://plantuml.com/zh/)
7. [（其他）簡報工具：Slidev](https://sli.dev)

### 時間規劃

- 成員：不限
- 時間：雙周、3個月～6個月不等，開始時間可能會抓在 10 月
- 內容：以[（必）內行人才知道的系統設計面試指南, 第一版](https://www.tenlong.com.tw/products/9789865028855) 為主，不過為了真的搞懂整本書在說什麼，可能會視參與者的背景、意願調整書單的多寡。
- 參與方式：原則上一個人會導讀一個案例，如果願意的話也可以藉由讀書會練習分享自己的系統設計範例。
    - 至少一次導讀 + 一次筆記工。
    - 導讀：介紹章節內容，章節為認領制，由於這本書一章就是一個案例，可能視讀書會的週期 & 人數放生某些章節，不過有人認領一定會讀到！
    - 導讀方向：例如：章節介紹、面試題、PRD、其他參考資料
    - 筆記工：讀書會結束後統整摘要、遇到的問題＆共筆。


> 頻率是雙週一
> 21:00 開始

| 日期       | 章節名稱                                  | 導讀人 | 筆記工 | 簡報連結 |
|------------|-------------------------------------------|--------|--------|------|
|            | 第1章｜使用者人數 —— 從零到百萬規模        |      備:雷N  |        |      |
|   10/13    | 第2章｜粗略的估算                          |      備:雷N  | Murky | [筆記](https://hackmd.io/yiTUbrJRQSm5nY7z5ciUXA?view)   |
|            | 第3章｜系統設計面試的框架                  |    Sam    |   柏毅     |      |
|            | 第4章｜設計網路限速器                      |      則元  |  Murky  |    [主講筆記](https://impartial-marble-6cc.notion.site/2928c32a5fa780a6a9bfe61ceaf0e819?source=copy_link) 、[隨堂筆記](https://hackmd.io/79bjkPX_TV6Exde0n9e-Wg?view) |
|            | 第5章｜設計具有一致性的雜湊做法            |       柏毅 |        |   [主講筆記](https://www.notion.so/CHAPTER-5-DESIGN-CONSISTENT-HASHING-2a62b522f23580c681accb71a85b1ed1?source=copy_link)   | 
|            | 第6章｜設計鍵值儲存系統                    |      柏毅   |   上竣   |  [主講筆記](https://www.notion.so/Ch6-Design-A-Key-value-Store-2b52b522f2358011aafcc9fee93a4275)     |
|            | Vol 2 Ch 10 <br> Leader Board             |      雷N   |     |      |      |
|     12/22       | 第7章｜設計可用於分散式系統的唯一ID生成器  |      Murky |   Ray Xie     |  [主講筆記](https://hackmd.io/@HWjmtqGJQRmj4pwClBcCKg/BkYHi_41bx) |
|     1/5       | 第8章｜設計短網址生成器                    |       Murky |     則元  |  [主講筆記](https://hackmd.io/@HWjmtqGJQRmj4pwClBcCKg/B1mC1fBmbl)  [隨堂筆記](https://hackmd.io/@QqLoNVPKT3SL2KxU6B-1ng/Hyi7x4tN-g) |
|     1/19       | 第9章｜設計網路爬蟲                        |    Ray Xie    |        |      |
|     2/2       | Vol 2 Ch 12 <br> Digital Wallet             |      雷N   |     |      |      |
|            | 第10章｜設計通知系統                       |   小許     |    Steven    |      |
|            | 第11章｜設計動態訊息系統                   |  Steven  |        |      |
|            | 第12章｜設計聊天系統                       |   上竣   |    Blue    |      |
|            | Vol 2 Ch 13 <br> Stock Exchange             |      雷N   |     |      |      |
|            | 第13章｜設計搜尋文字自動補全系統           |  Leo   |   小許     |      |
|            | 第14章｜設計Youtube                        |    Blue    |   Sam     |      |
|            | 第15章｜設計GOOGLE DRIVE                   | Leo       |        |      |


## 讀書會規則：
- 認領該章節的導讀人有**閱讀責任**及**主持責任**，需要讀完該章節並做筆記（簡報）於讀書會期間分享螢幕畫面帶著與會者導讀，並自行出題目引導大家回答與討論。
- 若導讀人需要請假請於讀書會舉行前一週「自行」到讀書會組別頻道中尋求章節交換。
- 認領該筆記工的人需紀錄讀書會期間的討論，並將筆記上傳至 [GitHub 討論區](https://github.com/Tech-Book-Community)。
- 成員都至少導讀人及筆記工各當一次，意即本次讀書會最多招收 xx 人，這 xx 人都當過一次導讀人及筆記工，最少 x 人，最少人數則會各當過 x 次。
- 若讀書會成員需要請假請自行於讀書會組別頻道中請假。
- 成為「讀書會成員」請務必持有「書籍」（實體、電子皆可），**「旁聽者」不需要準備書籍，也不需要認領章節**。
- **若你在讀書會期間有可能會請假兩次以上，建議以「旁聽者」身份參加（意即不用認領章節，時間到上線即可）。**
- 預計 xx 晚上 20:30 ~ 22:00 舉行第一次讀書會，每雙週 x 舉辦一次，共舉辦 x 次 x 結束。


## 導讀人流程：
- 自我介紹
- 前次回顧
- 本次導讀
- 引導成員每個人至少發言一次
    - 自行出本次章節的題目讓每個人至少回答一次
- 成員問題討論
    - 引導成員對本次章節的疑問及討論
- 成員回饋導讀人
- 次回日期、章節導讀人及筆記工預告


## 章節
- 日期：
- 導讀人：
- 筆記工：
- 請假：
- 缺席：
- 簡報：