# FastAPI 資深後端工程師養成系列 - 完整目錄


# 📚 FastAPI 資深後端工程師養成系列 - 目錄

&gt; 🎯 **目標讀者：** 想成為資深後端工程師的開發者
&gt; ⏱️ **預估總時數：** 40&#43; 小時
&gt; 📊 **難度範圍：** ⭐ ~ ⭐⭐⭐⭐⭐

---

## 🗺️ 學習路線圖

```
基礎篇 (1-3週)          進階篇 (2-4週)           實戰篇 (2-4週)
    │                      │                      │
    ▼                      ▼                      ▼
┌─────────┐           ┌─────────┐           ┌─────────┐
│ 01 基礎 │ ────────▶ │ 05 非同步│ ────────▶ │ 09 測試 │
│ 02 驗證 │           │ 06 DI   │           │ 10 部署 │
│ 03 資料庫│           │ 07 快取 │           │ 11 微服務│
│ 04 認證 │           │ 08 任務 │           │ 12 面試 │
└─────────┘           └─────────┘           └─────────┘
```

---

## 01. FastAPI 基礎篇 🌱

&gt; 從零開始，建立穩固的 FastAPI 基礎

- [01-1. FastAPI 是什麼？為什麼選擇它？](./01-1) ⏱️ 10min
- [01-2. 環境設定與第一個 API](./01-2) ⏱️ 15min
- [01-3. 路徑參數與查詢參數](./01-3) ⏱️ 15min
- [01-4. 請求體與回應模型](./01-4) ⏱️ 15min
- [01-5. 狀態碼與錯誤處理](./01-5) ⏱️ 12min
- [01-6. 自動生成 API 文件](./01-6) ⏱️ 10min
- [01-7. 專案結構最佳實踐](./01-7) ⏱️ 15min

---

## 02. Pydantic 資料驗證篇 ✅

&gt; 掌握 Pydantic v2，寫出型別安全的程式碼

- [02-1. Pydantic 基礎模型](./02-1) ⏱️ 12min
- [02-2. 欄位驗證與約束](./02-2) ⏱️ 15min
- [02-3. 自訂驗證器](./02-3) ⏱️ 15min
- [02-4. 巢狀模型與繼承](./02-4) ⏱️ 12min
- [02-5. 序列化與反序列化](./02-5) ⏱️ 12min
- [02-6. Settings 管理與環境變數](./02-6) ⏱️ 15min
- [02-7. Pydantic v1 vs v2 遷移指南](./02-7) ⏱️ 10min

---

## 03. 資料庫整合篇 🗄️

&gt; SQLAlchemy 2.0 &#43; 非同步資料庫操作

- [03-1. SQLAlchemy 2.0 新特性](./03-1) ⏱️ 15min
- [03-2. 非同步引擎與 Session](./03-2) ⏱️ 15min
- [03-3. ORM 模型設計](./03-3) ⏱️ 20min
- [03-4. 關聯關係（一對多、多對多）](./03-4) ⏱️ 20min
- [03-5. CRUD 操作封裝](./03-5) ⏱️ 15min
- [03-6. Alembic 資料庫遷移](./03-6) ⏱️ 15min
- [03-7. 查詢優化與 N&#43;1 問題](./03-7) ⏱️ 20min
- [03-8. 事務管理與併發控制](./03-8) ⏱️ 18min
- [03-9. 多資料庫與讀寫分離](./03-9) ⏱️ 15min

---

## 04. 認證與權限篇 🔐

&gt; 從密碼雜湊到 OAuth2，建立安全的認證系統

- [04-1. 密碼安全與雜湊](./04-1) ⏱️ 12min
- [04-2. JWT 原理與實作](./04-2) ⏱️ 18min
- [04-3. OAuth2 密碼流程](./04-3) ⏱️ 15min
- [04-4. Refresh Token 機制](./04-4) ⏱️ 15min
- [04-5. 基於角色的權限控制（RBAC）](./04-5) ⏱️ 20min
- [04-6. API Key 認證](./04-6) ⏱️ 12min
- [04-7. OAuth2 第三方登入（Google、GitHub）](./04-7) ⏱️ 25min
- [04-8. Token 黑名單與撤銷](./04-8) ⏱️ 15min

---

## 05. 非同步程式設計篇 ⚡

&gt; 深入理解 async/await，發揮 FastAPI 真正效能

- [05-1. Python 非同步基礎](./05-1) ⏱️ 20min
- [05-2. asyncio 事件循環](./05-2) ⏱️ 18min
- [05-3. 協程 vs 執行緒 vs 進程](./05-3) ⏱️ 20min
- [05-4. 非同步 HTTP 客戶端（httpx）](./05-4) ⏱️ 15min
- [05-5. 並發執行與 asyncio.gather](./05-5) ⏱️ 15min
- [05-6. 非同步上下文管理器](./05-6) ⏱️ 12min
- [05-7. 避免阻塞事件循環](./05-7) ⏱️ 15min
- [05-8. 同步 vs 非同步路由選擇](./05-8) ⏱️ 12min

---

## 06. 依賴注入系統篇 💉

&gt; FastAPI 最強大的特性，掌握 DI 設計模式

- [06-1. 依賴注入基礎概念](./06-1) ⏱️ 15min
- [06-2. 函數依賴與類別依賴](./06-2) ⏱️ 15min
- [06-3. 依賴的依賴（巢狀）](./06-3) ⏱️ 12min
- [06-4. 路徑操作裝飾器中的依賴](./06-4) ⏱️ 12min
- [06-5. 全域依賴與路由群組依賴](./06-5) ⏱️ 12min
- [06-6. 依賴覆蓋（測試利器）](./06-6) ⏱️ 15min
- [06-7. 資料庫 Session 依賴](./06-7) ⏱️ 12min
- [06-8. 認證依賴實戰](./06-8) ⏱️ 15min

---

## 07. 快取與效能優化篇 🚀

&gt; 讓你的 API 快如閃電

- [07-1. HTTP 快取機制（ETag、Cache-Control）](./07-1) ⏱️ 15min
- [07-2. Redis 快取整合](./07-2) ⏱️ 18min
- [07-3. 快取策略（Cache-Aside、Write-Through）](./07-3) ⏱️ 15min
- [07-4. 快取穿透、擊穿、雪崩](./07-4) ⏱️ 18min
- [07-5. 請求限流（Rate Limiting）](./07-5) ⏱️ 15min
- [07-6. 回應壓縮（Gzip、Brotli）](./07-6) ⏱️ 10min
- [07-7. 連線池優化](./07-7) ⏱️ 12min
- [07-8. 效能監控與分析](./07-8) ⏱️ 15min

---

## 08. 背景任務與訊息佇列篇 📬

&gt; 處理耗時任務，提升使用者體驗

- [08-1. FastAPI BackgroundTasks](./08-1) ⏱️ 12min
- [08-2. Celery 基礎架構](./08-2) ⏱️ 20min
- [08-3. Celery &#43; Redis 實戰](./08-3) ⏱️ 18min
- [08-4. 任務重試與錯誤處理](./08-4) ⏱️ 15min
- [08-5. 定時任務（Celery Beat）](./08-5) ⏱️ 15min
- [08-6. 任務鏈與工作流](./08-6) ⏱️ 15min
- [08-7. ARQ：輕量級替代方案](./08-7) ⏱️ 12min
- [08-8. 訊息佇列選擇（Redis vs RabbitMQ vs Kafka）](./08-8) ⏱️ 18min

---

## 09. 測試策略篇 🧪

&gt; 寫出可靠的測試，建立信心

- [09-1. 測試金字塔與策略](./09-1) ⏱️ 12min
- [09-2. pytest 基礎與進階](./09-2) ⏱️ 18min
- [09-3. pytest-asyncio 非同步測試](./09-3) ⏱️ 15min
- [09-4. TestClient 與 httpx](./09-4) ⏱️ 15min
- [09-5. 資料庫測試與 Fixtures](./09-5) ⏱️ 18min
- [09-6. Mocking 與 Patching](./09-6) ⏱️ 15min
- [09-7. 測試覆蓋率與報告](./09-7) ⏱️ 10min
- [09-8. 整合測試與 E2E 測試](./09-8) ⏱️ 15min

---

## 10. 部署與維運篇 🚢

&gt; 從開發到生產，完整的部署流程

- [10-1. ASGI 伺服器（Uvicorn、Hypercorn）](./10-1) ⏱️ 15min
- [10-2. Gunicorn &#43; Uvicorn Workers](./10-2) ⏱️ 15min
- [10-3. Docker 容器化](./10-3) ⏱️ 20min
- [10-4. Docker Compose 多服務編排](./10-4) ⏱️ 15min
- [10-5. Nginx 反向代理](./10-5) ⏱️ 15min
- [10-6. HTTPS 與 SSL 憑證](./10-6) ⏱️ 12min
- [10-7. 日誌管理（Loguru、結構化日誌）](./10-7) ⏱️ 15min
- [10-8. 健康檢查與優雅關閉](./10-8) ⏱️ 12min
- [10-9. CI/CD 流程（GitHub Actions）](./10-9) ⏱️ 20min
- [10-10. Kubernetes 部署入門](./10-10) ⏱️ 25min

---

## 11. 微服務架構篇 🏗️

&gt; 邁向分散式系統，成為架構師

- [11-1. 單體 vs 微服務](./11-1) ⏱️ 15min
- [11-2. API Gateway 設計](./11-2) ⏱️ 18min
- [11-3. 服務間通訊（REST、gRPC）](./11-3) ⏱️ 20min
- [11-4. 服務發現與註冊](./11-4) ⏱️ 15min
- [11-5. 分散式追蹤（OpenTelemetry）](./11-5) ⏱️ 18min
- [11-6. 斷路器模式（Circuit Breaker）](./11-6) ⏱️ 15min
- [11-7. 事件驅動架構](./11-7) ⏱️ 18min
- [11-8. CQRS 與 Event Sourcing](./11-8) ⏱️ 20min
- [11-9. 分散式事務處理](./11-9) ⏱️ 18min

---

## 12. 面試篇 🎤

&gt; 準備面試，展現實力

- [12-1. FastAPI 常見面試題（基礎）](./12-1) ⏱️ 20min
- [12-2. FastAPI 常見面試題（進階）](./12-2) ⏱️ 20min
- [12-3. 系統設計面試（API 設計）](./12-3) ⏱️ 25min
- [12-4. 系統設計面試（高併發）](./12-4) ⏱️ 25min
- [12-5. 程式碼實作題](./12-5) ⏱️ 20min
- [12-6. 情境題與經驗分享](./12-6) ⏱️ 15min

---

## 📊 技能檢核表

### 初級後端工程師 (Junior)

- [ ] 建立基本 CRUD API
- [ ] 使用 Pydantic 進行資料驗證
- [ ] 連接資料庫並操作
- [ ] 實作基本認證

### 中級後端工程師 (Mid-level)

- [ ] 設計 RESTful API
- [ ] 理解並使用非同步程式設計
- [ ] 實作完整認證授權系統
- [ ] 撰寫單元測試與整合測試
- [ ] Docker 容器化部署

### 資深後端工程師 (Senior)

- [ ] 設計高效能 API 架構
- [ ] 快取策略與效能優化
- [ ] 背景任務與訊息佇列
- [ ] 微服務架構設計
- [ ] 分散式系統問題處理
- [ ] 技術決策與架構評估

---

## 🛠️ 實戰專案

在學習過程中，建議同時進行以下專案練習：

### 專案 1：待辦事項 API (基礎)
- CRUD 操作
- 使用者認證
- 資料庫整合

### 專案 2：電商 API (中級)
- 商品管理
- 購物車
- 訂單處理
- 庫存管理

### 專案 3：社群平台 API (進階)
- 即時通知
- 動態牆
- 追蹤系統
- 檔案上傳

### 專案 4：微服務架構 (資深)
- 使用者服務
- 商品服務
- 訂單服務
- API Gateway

---

## 📖 推薦資源

### 官方文件
- [FastAPI 官方文件](https://fastapi.tiangolo.com/)
- [Pydantic 文件](https://docs.pydantic.dev/)
- [SQLAlchemy 文件](https://docs.sqlalchemy.org/)

### 書籍
- 《Building Python Web APIs with FastAPI》
- 《Python Concurrency with asyncio》
- 《Designing Data-Intensive Applications》

### 開源專案參考
- [Full Stack FastAPI Template](https://github.com/tiangolo/full-stack-fastapi-template)
- [FastAPI Best Practices](https://github.com/zhanymkanov/fastapi-best-practices)

---

## 🚀 開始學習

準備好了嗎？讓我們從第一章開始：

**[01-1. FastAPI 是什麼？為什麼選擇它？](./01-1)**

---

&gt; 💡 **小提示：** 建議按順序學習，每完成一個章節就動手實作，這樣學習效果最好！

---

最後更新：2025-12-17


---

> 作者: luk  
> URL: https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/fastapi/fastapi-senior-backend-engineer-guide/  

