後端開發 Roadmap
後端工程師的完整學習地圖。按五層架構組織:跨語言共通 → 語言特定 → 架構決策 → 應用層 → 品質跨切面。
詳細計畫(20 章)→ ROADMAP.md
計畫已含:各章五段式展開、backend/language/ + backend/framework/ 觸發清單、跨系列 cross-reference 盤點、B07「後端專案共用規範」專章(整理 proto shared/ 40+ 模組)。
學習路徑
[基礎層]
語言共通概念 → 網路協議 → 資料持久化 → 作業系統基礎
↓
[抽象層]
語言特定(Go / Node / Python / JVM / PHP / Rust)→ Framework
↓
[架構層]
單體 vs 微服務 → API 設計 → 架構風格(Layered/Clean/DDD/CQRS)
↓
[應用層]
認證授權 / 資料驗證 / Queue / Cache / 儲存
↓
[品質與跨切面]
測試 / 資安 / 觀測 / 部署 / 壓測與效能
↓
[實作驅動]
walkthroughs/(Level 1~5 後端專案、無 framework 從零建站)
跨領域連結:
Stage:🌱 seed(待寫) / 🌿 growing / 🌳 mature
基礎層
B01 跨語言共通概念
| # | 主題 | stage |
|---|
| 01 | 變數、Scope、Closure(跨語言差異) | 🌱 |
| 02 | 錯誤處理模式(Exception / Result / Error wrapping) | 🌱 |
| 03 | Concurrency 模型(Thread / Coroutine / async/await / Actor) | 🌱 |
| 04 | 記憶體管理(GC / Manual / Ownership) | 🌱 |
| 05 | 型別系統(靜態 vs 動態、Structural vs Nominal) | 🌱 |
| 06 | IO 模型(Blocking / Non-blocking / Async / Event-driven) | 🌱 |
B02 網路與協議
| # | 主題 | 連結 | stage |
|---|
| 01 | TCP / UDP 基礎 | — | 🌱 |
| 02 | HTTP 1.1 → 2 → 3 演進 | — | 🌱 |
| 03 | DNS 運作機制 | DNS | 🌿 |
| 04 | TLS 基礎 | Reverse Proxy + TLS | 🌿 |
| 05 | WebSocket | WebSocket | 🌿 |
| 06 | gRPC 基礎 | — | 🌱 |
| 07 | Message queue protocols(AMQP / MQTT) | — | 🌱 |
B03 資料持久化
B04 作業系統基礎
| # | 主題 | stage |
|---|
| 01 | Process vs Thread | 🌱 |
| 02 | File descriptor 與 IO | 🌱 |
| 03 | Signal 與 Process 管理 | 🌱 |
| 04 | 容器化基礎 | Containerization 🌿 |
抽象層
B05 語言特定實作(同一個 CRUD 跨語言比較)
B06 後端 Framework 系列
→ B06 完整文章索引(62 篇泛用層 + Express 子系列)
泛用層 62 篇已完成(🌿),涵蓋:
| 分類 | 文章 | stage |
|---|
| 概論(01–09) | 為什麼要框架、Magic vs Explicit、框架演進驅動力 | 🌿 |
| 選型比較(10–17) | Node.js / Python / Go / JVM / PHP / .NET / Rust / Meta-framework | 🌿 |
| 核心能力(18–28) | Routing、Middleware、DI、Request Binding、Error Handling、Lifecycle、Benchmark 讀法 | 🌿 |
| Production 模組(29–62) | DB Migration、Auth/RBAC/ABAC、API 版本 / Rate Limit / 分頁 / 冪等、Log、Cache、WebSocket/SSE、i18n、OpenAPI、Observability… | 🌿 |
Framework 深入子系列(各語言 backend/framework/{name}/):Express 5🌿 + 9🌱,其他待觸發。
後端框架擴充策略(新結構:backend/framework/{name}/)
現有:backend/framework/express/(5 🌿 已搬入,後續擴展到 ~15)
預計觸發子目錄(詳見 B06 Framework 系列):
| 優先度 | Framework | 子目錄 | 內容重點 |
|---|
| 🔴 | FastAPI | backend/framework/fastapi/ | proto 完整實作(auth / events / RBAC / async SQLAlchemy) |
| 🔴 | Express | backend/framework/express/ | 既有 5 篇 + 擴展到 ~15 |
| 🟡 | NestJS | backend/framework/nestjs/ | Module / Guard / Pipe / Interceptor |
| 🟡 | Fastify | backend/framework/fastify/ | Plugin / Schema / 效能 |
| 🟡 | Django | backend/framework/django/ | ORM / Admin / DRF / Celery |
| 🟡 | Spring Boot | backend/framework/spring-boot/ | Bean / AOP / JPA / WebFlux |
| 🟡 | Laravel | backend/framework/laravel/ | Eloquent / Queue / Horizon |
| 🟡 | Gin | backend/framework/gin/ | Context / middleware / binding |
| 🟡 | ASP.NET Core | backend/framework/aspnet-core/ | Minimal API / EF Core |
| 🟢 | Axum / Actix | backend/framework/rust-web/ | Tokio 生態 |
語言觸發(backend/language/{name}/,詳見 B05 language ROADMAP):
| 優先度 | 語言 | 子目錄 |
|---|
| 🔴 | JS / TypeScript | backend/language/nodejs/ |
| 🔴 | Python | backend/language/python/ |
| 🔴 | PHP | backend/language/php/ |
| 🟡 | Java | backend/language/java/ |
| 🟡 | Go | backend/language/go/ |
| 🟡 | C# / .NET | backend/language/dotnet/ |
| 🟢 | Rust | backend/language/rust/ |
B07 後端專案共用規範(新章)
整理 proto shared/ 的完整 40+ 模組。跨 framework 的 pattern — 換成 NestJS / Spring Boot 這些 pattern 一樣適用。詳見 B07 conventions ROADMAP。
涵蓋:JWT 非對稱簽名 / BaseRepository / EventBus / CacheService / structured logging / 11 個 middleware / statistics / audit log / health probe / 統一錯誤處理。
Express 系列目前位置:
| 文章 | 目前位置 |
|---|
| Express + TypeScript 從零開始 | backend/framework/express/init |
| ESLint + Typings 設定 | backend/framework/express/eslint-typings |
| Jest 測試設定 | backend/framework/express/jest-setup |
| Base Controller 設計 | backend/framework/express/base-controller |
| 泛用 Log 設計 | backend/framework/express/generic-log |
架構層
B08 後端架構決策
| # | 主題 | 連結 | stage |
|---|
| 01 | 單體 vs 微服務 | 微服務 | 🌿 |
| 02 | 拆分時機與原則 | — | 🌱 |
| 03 | Serverless vs Server | Serverless vs Server | 🌿 |
| 04 | Event-driven architecture | — | 🌱 |
| 05 | BFF(Backend for Frontend) | — | 🌱 |
| 06 | 架構風格應用 | → common/foundations/architecture-patterns/ | 🌱 |
B09 API 設計
| # | 主題 | 連結 | stage |
|---|
| 01 | RESTful 基礎 | RESTful | 🌿 |
| 02 | API 設計完整指南 | API Design | 🌿 |
| 03 | Proto Planning | Proto Planning | 🌿 |
| 04 | GraphQL 後端視角 | — | 🌱 |
| 05 | gRPC 服務設計 | — | 🌱 |
| 06 | API Versioning 策略 | — | 🌱 |
| 07 | OpenAPI / Swagger 文件 | Swagger | 🌿 |
| 08 | 錯誤碼設計與回傳格式 | — | 🌱 |
| 09 | Idempotency(冪等性) | — | 🌱 |
| 10 | Rate Limiting 與限流策略 | — | 🌱 |
應用層
B10 認證與授權
| # | 主題 | 連結 | stage |
|---|
| 01 | Session vs JWT vs Cookie | — | 🌱 |
| 02 | OAuth 2.0 / OIDC | OAuth Guide | 🌿 |
| 03 | 權限模型(RBAC / ABAC / ReBAC) | — | 🌱 |
| 04 | bcrypt / argon2 密碼雜湊 | bcrypt、bcrypt vs argon2 | 🌿 |
| 05 | Token 刷新與撤銷 | — | 🌱 |
| 06 | SSO 整合 | — | 🌱 |
B11 資料驗證與序列化
| # | 主題 | stage |
|---|
| 01 | Input validation 策略(Boundary vs Everywhere) | 🌱 |
| 02 | Schema validation(Zod / Pydantic / Joi / JSR-380) | 🌱 |
| 03 | 序列化格式(JSON / Protobuf / MsgPack / Avro) | 🌱 |
| 04 | DTO vs Entity 分離 | 🌱 |
B12 背景任務與 Queue
| # | 主題 | stage |
|---|
| 01 | Queue 基礎概念 | 🌱 |
| 02 | Worker Pool 實作 | 🌱 |
| 03 | Job Queue(Celery / BullMQ / Sidekiq / Asynq) | 🌱 |
| 04 | Scheduled Jobs 與 Cron | 🌱 |
| 05 | Message Broker(Kafka / RabbitMQ / NATS / Redis Streams) | 🌱 |
| 06 | 重試、死信、Idempotency | 🌱 |
B13 快取策略
| # | 主題 | stage |
|---|
| 01 | 快取層次(CPU / Memory / Redis / CDN) | 🌱 |
| 02 | Cache Patterns(Aside / Write-through / Write-behind / Refresh-ahead) | 🌱 |
| 03 | Cache Invalidation(TTL / Event / Tag) | 🌱 |
| 04 | 熱點 Key 與雪崩預防 | 🌱 |
B14 檔案與儲存
| # | 主題 | stage |
|---|
| 01 | 檔案上傳(Multipart / Streaming / Chunked) | 🌱 |
| 02 | 物件儲存(S3 / MinIO) | 🌱 |
| 03 | Pre-signed URL 策略 | 🌱 |
| 04 | CDN 整合 | 🌱 |
品質與跨切面
B15 測試
B16 資安
| # | 主題 | 連結 | stage |
|---|
| 01 | OWASP Top 10 | Web Security | 🌿 |
| 02 | SQL Injection / Parameterized Query | — | 🌱 |
| 03 | Secret 管理 | Secrets & Config | 🌿 |
| 04 | Dependency Scanning | — | 🌱 |
| 05 | API 安全(CORS / CSRF / Rate Limit) | — | 🌱 |
B17 觀測性
B18 部署與 DX
B19 壓測與效能
AI 輔助後端 + LLM Backend(新增)
B20 AI 後端章節(跟前端 CH17 對稱)
詳細計畫 → B20 AI ROADMAP(~42 子題)
兩個面向:
| 面向 | 涵蓋 |
|---|
| AI 輔助後端開發 | Cursor / Claude Code / Copilot 寫 API / migration / test;AI code review 後端視角 |
| 建 LLM Backend 服務 | OpenAI / Anthropic API 整合;RAG + pgvector / Qdrant;Prompt 管理;Streaming response;Tool use / MCP;Prompt Injection 防禦;Token cost / rate limit / provider routing |
實作練習(連到 walkthroughs/)
Level 1~5 專案路徑
詳細走法未來放 walkthroughs/:
- RESTful User CRUD — 路由、ORM、驗證、錯誤處理(相關:Base Controller、CRUD 壓測總覽)
- Auth 系統(JWT + RBAC) — bcrypt、middleware、refresh token(相關:bcrypt 瓶頸)
- 檔案上傳 + 圖片處理 — multipart、streaming、S3(相關:泛用 Log)
- 任務佇列 + 通知 — Redis Queue、事件驅動、Email
- 拆微服務 — API Gateway、Service Discovery、Tracing(相關:CRUD 總覽)
無 framework 從零建站系列(W04)
每種語言用最小依賴做一個 HTTP 伺服器,不用 framework。知道 framework 在幫你做什麼。涵蓋 7 語言,詳見 ROADMAP:
- 🔴 Node.js / Python / PHP(作者熟,詳細展開)
- 🟡 Go / Java / C#(有素材,高階佔位)
- 🟢 Rust(遠期)
策展地圖
跨目錄相關內容(後端視角)
實作練習 → walkthroughs/
- W04 無 framework 後端(4 語言版本)— Node / Python / Go / Rust
- W05 後端 Level 1~5 — CRUD / Auth / 上傳 / Queue / 拆微服務
- W07 Rust 壓測平台(規劃中)
技術系統案例 → case-studies/
後端工程師必看:
- C03 金融/支付(Stripe Architecture)
- C04 即時通訊(Discord、WhatsApp 單機 million connections)
- C05 搜尋/派單(Uber Dispatch、Google Search)
- C07 OSS 源碼深讀(PostgreSQL MVCC、Redis、Kafka、K8s Control Plane)
- C08 AI/ML 系統推估
商業系統分析 → case-studies/business/
後端主要戰場:
- B01 電商金流(訂單狀態機、對帳)
- B02 SaaS 訂閱計費(trial → dunning)
- B04 分潤 / 傭金
- B08 多租戶 SaaS 資料隔離
- B10 財務對帳審計(複式記帳)
運維踩雷 → ops-notes/
實戰 Kong / K8s / Docker / Probe / CI/CD 坑:
- O01 K8s 部署阻斷(5 案例)
- O02 Kong Gateway 坑(8 案例,最多)
- O06 Env / Secret 管理
- O08 資源限制與壓測調校
軟實力 → common/people/soft-skills/
- SS01 歸納收斂(技術決策文件 ADR、trade-off 分析)
- SS04 Spec 寫作、API doc
- SS05 Code Review 互動
體檢清單 → common/quality/standards/
程式架構 → common/foundations/architecture-patterns/
所有 A01~A13 都跟後端相關(後端是架構模式的主戰場)
進度統計
- 主題群:20(B01~B20)+ 實作練習
- 章節子題:~760(含 B20 AI 章,不含觸發子系列與 walkthroughs)
- 觸發子系列(language × 7 + framework × 10):~225 額外
- 🌿 growing:約 52(很多已在 backend/micro-service/ 68 篇、infra/ 33 篇)
- 🌱 seed:約 700+
- 🌳 mature:0
詳細計畫 → ROADMAP.md
架構設計說明
| 層 | 內容 | 範圍 |
|---|
| 基礎層 | B01~B04 | 跨語言共通 / 網路 / DB / OS |
| 抽象層 | B05~B07 | 語言比較 / Framework / 共用規範 |
| 架構層 | B08~B09 | 架構決策 / API 設計 |
| 應用層 | B10~B14 | 認證 / 驗證 / Queue / Cache / 儲存 |
| 品質與跨切面 | B15~B19 | 測試 / 資安 / 觀測 / 部署 / 壓測 |
| AI 時代 | B20 | AI 輔助後端 + LLM Backend |
| 實作驅動 | walkthroughs/ | W04 無 framework(7 語言)、W05 Level 1~5 |