後端系列 Roadmap
計畫文件,不會被 Quartz 渲染(無 frontmatter)。每個 chapter 有自己的詳細 ROADMAP。 公開頁 →
backend/index.md
編排原則
1. 五段式結構(每章節)+ 可選 📎 補充
- 🌱 基本介紹 — What
- ❓ 為什麼需要 — Why(不用的話會痛在哪)
- 🕰️ 演進 — How we got here
- 🧠 知識型 — How it works(深入概念)
- 🔧 小實作注意事項 — gotcha、實戰 tips
- 💣 Anti-pattern — 地雷合輯
- 🧰 對應檢查工具 — lint / bench / audit
- 📎 補充(可選)— niche 主題
2. Why-first 原則(每篇文章都要)
開頭段或前 1/3 段必須說明:不用這個會痛在哪。詳見 CLAUDE.md。
3. 推進順序
基礎層(B01–B04)
B01 跨語言共通概念 → B02 網路協議 → B03 資料持久化 → B04 OS 基礎
抽象層(B05–B07)
B05 跨語言 CRUD 比較(+ backend/language/{name}/ 觸發)
B06 Framework 生態比較(+ backend/framework/{name}/ 觸發)
B07 後端專案共用規範(proto shared 整套教材)
架構層(B08–B09)
B08 架構決策 → B09 API 設計
應用層(B10–B14)
B10 認證授權 → B11 驗證序列化 → B12 Queue → B13 Cache → B14 儲存
品質跨切面(B15–B19)
B15 測試 → B16 資安 → B17 觀測 → B18 部署 → B19 壓測效能
AI 輔助與 LLM Backend(B20)
B20 AI 輔助後端開發 + LLM Backend(跟 frontend CH17 對稱)
實作練習(walkthroughs/)
W04 無 framework 後端 → W05 後端 Level 1–5
4. 狀態標記
- 🌱 seed — 待寫
- 🌿 growing — 已寫
- 🌳 mature — 完整(有出處、校對、交叉連結)
- ⛔️ 在其他 series 已寫
章節明細
| CH | 章節 | 詳細計畫 | 現有 🌿 | 估計 🌱 |
|---|---|---|---|---|
| B01 | 跨語言共通概念 | backend/concepts/ROADMAP.md | 0 | ~25 |
| B02 | 網路與協議 | backend/network/ROADMAP.md | 2 | ~36 |
| B03 | 資料持久化 | backend/database/ROADMAP.md | 6 | ~56(+F03-J 微服務 DB 策略 7 題) |
| B04 | 作業系統基礎 | backend/os/ROADMAP.md | 1 | ~28 |
| B05 | 跨語言 CRUD 比較 | backend/language/ROADMAP.md | 5 | ~19(+7 觸發系列) |
| B06 | Framework 生態比較 | backend/framework/ROADMAP.md | 5 | ~28(+10 觸發系列) |
| B07 | 後端專案共用規範 | backend/conventions/ROADMAP.md | 0 | ~49(+Log 四層 + Base Controller) |
| B08 | 後端架構決策 | backend/architecture/ROADMAP.md | 2 | ~52(+F08-F Monolith→MS 準備 15 + F08-G Patterns 3 + F08-H Multi-region 3) |
| B09 | API 設計 | backend/api-design/ROADMAP.md | 3 | ~53(+F09-I 文件化 Governance 10 + Billing/Payment 2) |
| B10 | 認證與授權 | backend/auth/ROADMAP.md | 3 | ~35(+F10-E 微服務認證 5) |
| B11 | 資料驗證與序列化 | backend/validation/ROADMAP.md | 0 | ~22 |
| B12 | 背景任務與 Queue | backend/queue/ROADMAP.md | 2 | ~37(+Email/Push/Notification/i18n infra 4) |
| B13 | 快取策略 | backend/cache/ROADMAP.md | 3 | ~28 |
| B14 | 檔案與儲存 | backend/storage/ROADMAP.md | 1 | ~29(+F14-E 微服務 Storage 6) |
| B15 | 測試(後端視角) | backend/testing/ROADMAP.md | 2 | ~32(+F15-F 後端 TDD 實戰 5) |
| B16 | 資安(後端視角) | backend/security/ROADMAP.md | 2 | ~44(+F16-F 合規 + DDoS 5) |
| B17 | 觀測性 | backend/observability/ROADMAP.md | 4 | ~33 |
| B18 | 部署與 DX | backend/deployment/ROADMAP.md | 6 | ~39 |
| B19 | 壓測與效能 | backend/stress-testing/ROADMAP.md | 5 | ~42 |
| B20 | AI 輔助後端 + LLM Backend | backend/ai/ROADMAP.md | 0 | ~42 |
| Walk | W04 無 framework / W05 Level 1–5 | walkthroughs/ROADMAP.md | 0 | ~30 |
| 合計 | 20 章 + W04/W05 | ~52 | ~757+(不含語言/framework 觸發系列 ~225 額外) |
語言觸發清單(backend/language/{name}/)
配 B05 章節「跨語言 CRUD 比較」:章節本身是跨語言並列,各語言深入放這裡觸發。
| 優先度 | 語言 | 既有素材 | 預計子題 | 備註 |
|---|---|---|---|---|
| 🔴 | JS / TypeScript | backend/express/(5 篇)、micro-service/11-nodejs-crud | ~15 | Event Loop / Stream / Worker / Typing / monorepo |
| 🔴 | Python | micro-service/12-python-crud、proto 整套 | ~15 | GIL / asyncio / typing / __slots__ / packaging |
| 🔴 | PHP | micro-service/14-laravel-crud | ~10 | FPM / PSR / Composer / Blade / Queue |
| 🟡 | Java(跨層級完整) | micro-service/13-jvm-clr-crud | ~20 | JMM / GC / JIT / classloader / concurrency / Spring / Kotlin coroutine |
| 🟡 | Go | micro-service/10-go-crud | ~12 | Goroutine / Channel / Context / GC / stdlib |
| 🟡 | C# / .NET | micro-service/13-jvm-clr-crud(CLR 部分)、proto dotnet | ~12 | CLR / GC / async-await / LINQ / Kestrel |
| 🟢 | Rust | 無 | ~15 | Ownership / Borrow / Lifetime / async / tokio |
觸發規則:目錄不預先建,寫到 5+ 篇時才 mkdir。ROADMAP 有列就算數。
Framework 觸發清單(backend/framework/{name}/)
配 B06 章節「Framework 生態比較」:章節本身是選型比較,各 framework 深入放這裡觸發。
| 優先度 | Framework | 生態 | 既有素材 | 預計子題 |
|---|---|---|---|---|
| 🔴 | FastAPI | Python | proto 主力(完整實作) | ~15 |
| 🔴 | Express | Node.js | 5 篇 🌿(init / ESLint / Jest / Base Controller / Generic Log) | ~15 |
| 🟡 | NestJS | Node.js | 無 | ~12 |
| 🟡 | Fastify | Node.js | 無 | ~10 |
| 🟡 | Django | Python | 無 | ~15 |
| 🟡 | Spring Boot | Java | proto springboot skeleton | ~15 |
| 🟡 | Laravel | PHP | micro-service/14-laravel-crud | ~12 |
| 🟡 | Gin | Go | 無 | ~10 |
| 🟡 | ASP.NET Core | C# | proto dotnet | ~12 |
| 🟢 | Axum / Actix | Rust | 無 | ~10 |
進度追蹤
Milestone 流程:
- M1–M4:基礎層(B01–B04)
- M5–M7:抽象層(B05–B07,含 B07 共用規範)
- M8–M9:架構層(B08–B09)
- M10–M14:應用層(B10–B14)
- M15–M19:品質層(B15–B19)
- M20:AI / LLM Backend(B20)
- W04 / W05 併入對應 milestone
每章完成定義:
- 基本介紹、演進、知識型、小實作四段都有文章 🌿
- Anti-pattern 與檢查工具段都有列出
- 跨系列引用齊全
- 架構師已檢查過漏項
附錄 A:後端 → 其他系列 Cross-Reference 盤點
整理後端 ROADMAP 所有 ⛔️ 跨系列引用,給未來整理通用系列時對齊。 通用系列尚未建立 ROADMAP.md(最後一輪才整理)。
A-1 micro-service/(實戰素材庫,68 篇)
| 分類 | 文章 |
|---|---|
| 壓測平台 | 01–05(why / architecture / controlled vars / k6 / Grafana) |
| bcrypt 系列 | 06–08(bottleneck / implementations / vs argon2) |
| 跨語言 CRUD | 09–14(overview + Go/Node/Python/JVM+CLR/PHP) |
| 前端相關 | 15–16(Lighthouse / render strategy) |
| DB 深入 | 17–19、31–32、56–57、59–61(PG vs MySQL / bulk / pool / deep dive / migration / search / race / lock / read-write split) |
| Storage | 20(Redis / ES) |
| Infra 容量 | 21–24(free lunch / scaling / cross-layer / mixed overview) |
| 上傳 / 即時 | 25–26、58(file upload / websocket-sse / communication protocols) |
| Queue / Cache | 27、33–34(cold start / correct usage / antipatterns) |
| 微服務拆分 | 28、39–40(monolith → micro / when to split / split patterns) |
| Anti-pattern / 回顧 | 29–30(real-world / lessons learned) |
| Event-driven | 35–36(basics / pitfalls) |
| Framework 選型 | 37–38(methodology / cases) |
| Docker / K8s | 41–42(Docker Compose vs K8s / production) |
| Observability 實戰 | 43–45(tracing / logging / dashboard) |
| Data 一致性 | 46–47(Saga / eventual consistency) |
| CI/CD / Deploy | 48–49(microservice CI/CD / zero-downtime) |
| 微服務資安 | 50–51(microservice security / API gateway security) |
| DX | 52–53(local development / debugging) |
| 成本 | 54–55、62(cost calc / optimization / optimization roadmap) |
| Conclusion | 63–68(f2e / b2e / db / storage / infra / fullstack-selection) |
後端 ROADMAP 會大量 ⛔️ 引用這些,整理通用系列時記得:這些素材可能需要分散到對應主題的通用系列(例如 DB 系列、Queue 系列、壓測系列各自吸收)。
A-2 infra/(基礎建設素材庫,30+ 篇)
- B02 網路:01-network-dns、02-reverse-proxy-tls
- B18 部署:03-container-runtime、07-container-registry、05-infra-core-cicd、08-gitlab-cicd-templates、25-environment-separation
- B17 觀測:15-metrics-monitoring、16-log-management、17-alerts-chatops、18-alert-webhook-integration、19-multi-node-monitoring
- B14 儲存:10-storage-management、28-backup-disaster-recovery
- B03 DB:11-database-postgresql、13-postgresql-advanced、14-elasticsearch-deep-dive
- B16 資安:04-identity-access、09-secrets-config、26-security-scanning、27-secrets-certificate-management、30-application-security
- B12 Queue:22-event-driven-queue
- B09 API:21-api-gateway、23-websocket、24-serverless
A-3 k8s/、database/、cloud/、system-design/
k8s/index→ B18 部署database/index→ B03 資料持久化cloud/02-serverless-vs-server→ B08 架構決策system-design/03-api-design、system-design/05-proto-planning→ B09 API 設計
A-4 fundamentals/(跨領域基礎)
| 引用 | 位置 |
|---|---|
fundamentals/restful-api | B09 #01 REST 基礎 |
fundamentals/swagger | B09 #07 OpenAPI |
fundamentals/oauth-guide | B10 #02 OAuth |
fundamentals/websocket | B02 #05 / B09 WebSocket |
fundamentals/containerization | B04 / B18 容器化 |
A-5 process/ / standards/ / testing/ / security/ / career/
| 通用系列 | 後端引用點 |
|---|---|
process/01-environment-planning | B18 環境管理 |
process/02-testing-strategy | B15 測試 |
process/08-release-methodology | B18 發布策略 |
process/14-tdd-bdd-sdd | B15 測試 |
standards/02-good-backend-framework | B06 Framework |
standards/03-good-api-design | B09 API |
standards/04-good-database-design | B03 DB |
standards/06-good-cicd-pipeline | B18 CI/CD |
standards/07-good-monitoring-system | B17 觀測 |
testing/05-api-contract-testing | B15 合約測試 |
security/03-web-security | B16 OWASP |
career/02-good-backend-engineer | 後端起點 |
A-6 architecture-patterns/
所有 A01–A13 都跟後端相關(Layered / Clean / DDD / CQRS / Event Sourcing / Microservices 等),B08 架構決策 pointer 過去。
附錄 B:未解決 / 待後續處理
- 通用系列 ROADMAP:最後一輪重整時建立(testing / security / career / process / standards / fundamentals)
micro-service/篇章重新歸類:多篇實戰文可能要搬(例如 33-cache-correct-usage 搬到cache/?)→ 通用系列整理輪次再決定,現在只引用- proto dotnet 實作盤點:等進入 C#.NET 觸發時再看
- 語言 / Framework 觸發目錄:寫到 5+ 篇才建
跨系列連結
- →
frontend/ROADMAP.md(前後端對稱) - →
walkthroughs/ROADMAP.mdW04 / W05 - →
backend/index.md公開頁