後端開發 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)🌱
03Concurrency 模型(Thread / Coroutine / async/await / Actor)🌱
04記憶體管理(GC / Manual / Ownership)🌱
05型別系統(靜態 vs 動態、Structural vs Nominal)🌱
06IO 模型(Blocking / Non-blocking / Async / Event-driven)🌱

B02 網路與協議

#主題連結stage
01TCP / UDP 基礎🌱
02HTTP 1.1 → 2 → 3 演進🌱
03DNS 運作機制DNS🌿
04TLS 基礎Reverse Proxy + TLS🌿
05WebSocketWebSocket🌿
06gRPC 基礎🌱
07Message queue protocols(AMQP / MQTT)🌱

B03 資料持久化

#主題連結stage
01SQL 基礎Database🌿
02ORM vs Query Builder vs Raw SQL🌱
03Transaction 與 Isolation Level🌱
04索引與查詢規劃Bulk & Index🌿
05連線池管理DB Pool🌿
06PostgreSQL vs MySQLPG vs MySQL🌿
07NoSQL 分類(KV / Document / Column / Graph)🌱
08Redis / MemcachedRedis & ES🌿
09Search Engine(Elasticsearch / OpenSearch)ES Deep Dive🌿

B04 作業系統基礎

#主題stage
01Process vs Thread🌱
02File descriptor 與 IO🌱
03Signal 與 Process 管理🌱
04容器化基礎Containerization 🌿

抽象層

B05 語言特定實作(同一個 CRUD 跨語言比較)

#語言連結stage
01CRUD 跨語言總覽CRUD Overview🌿
02GoGo CRUD🌿
03Node.jsNode.js CRUD🌿
04PythonPython CRUD🌿
05JVM(Java / Kotlin)CLR CRUD🌿
06PHP(Laravel)Laravel CRUD🌿
07Rust(待規劃)🌱

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子目錄內容重點
🔴FastAPIbackend/framework/fastapi/proto 完整實作(auth / events / RBAC / async SQLAlchemy)
🔴Expressbackend/framework/express/既有 5 篇 + 擴展到 ~15
🟡NestJSbackend/framework/nestjs/Module / Guard / Pipe / Interceptor
🟡Fastifybackend/framework/fastify/Plugin / Schema / 效能
🟡Djangobackend/framework/django/ORM / Admin / DRF / Celery
🟡Spring Bootbackend/framework/spring-boot/Bean / AOP / JPA / WebFlux
🟡Laravelbackend/framework/laravel/Eloquent / Queue / Horizon
🟡Ginbackend/framework/gin/Context / middleware / binding
🟡ASP.NET Corebackend/framework/aspnet-core/Minimal API / EF Core
🟢Axum / Actixbackend/framework/rust-web/Tokio 生態

語言觸發backend/language/{name}/,詳見 B05 language ROADMAP):

優先度語言子目錄
🔴JS / TypeScriptbackend/language/nodejs/
🔴Pythonbackend/language/python/
🔴PHPbackend/language/php/
🟡Javabackend/language/java/
🟡Gobackend/language/go/
🟡C# / .NETbackend/language/dotnet/
🟢Rustbackend/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拆分時機與原則🌱
03Serverless vs ServerServerless vs Server🌿
04Event-driven architecture🌱
05BFF(Backend for Frontend)🌱
06架構風格應用common/foundations/architecture-patterns/🌱

B09 API 設計

#主題連結stage
01RESTful 基礎RESTful🌿
02API 設計完整指南API Design🌿
03Proto PlanningProto Planning🌿
04GraphQL 後端視角🌱
05gRPC 服務設計🌱
06API Versioning 策略🌱
07OpenAPI / Swagger 文件Swagger🌿
08錯誤碼設計與回傳格式🌱
09Idempotency(冪等性)🌱
10Rate Limiting 與限流策略🌱

應用層

B10 認證與授權

#主題連結stage
01Session vs JWT vs Cookie🌱
02OAuth 2.0 / OIDCOAuth Guide🌿
03權限模型(RBAC / ABAC / ReBAC)🌱
04bcrypt / argon2 密碼雜湊bcryptbcrypt vs argon2🌿
05Token 刷新與撤銷🌱
06SSO 整合🌱

B11 資料驗證與序列化

#主題stage
01Input validation 策略(Boundary vs Everywhere)🌱
02Schema validation(Zod / Pydantic / Joi / JSR-380)🌱
03序列化格式(JSON / Protobuf / MsgPack / Avro)🌱
04DTO vs Entity 分離🌱

B12 背景任務與 Queue

#主題stage
01Queue 基礎概念🌱
02Worker Pool 實作🌱
03Job Queue(Celery / BullMQ / Sidekiq / Asynq)🌱
04Scheduled Jobs 與 Cron🌱
05Message Broker(Kafka / RabbitMQ / NATS / Redis Streams)🌱
06重試、死信、Idempotency🌱

B13 快取策略

#主題stage
01快取層次(CPU / Memory / Redis / CDN)🌱
02Cache Patterns(Aside / Write-through / Write-behind / Refresh-ahead)🌱
03Cache Invalidation(TTL / Event / Tag)🌱
04熱點 Key 與雪崩預防🌱

B14 檔案與儲存

#主題stage
01檔案上傳(Multipart / Streaming / Chunked)🌱
02物件儲存(S3 / MinIO)🌱
03Pre-signed URL 策略🌱
04CDN 整合🌱

品質與跨切面

B15 測試

#主題連結stage
01測試金字塔:Unit / Integration / Contract / E2ETesting Strategy🌿
02Fixture、Factory、Seed Data🌱
03Contract Testing(Pact)API Contract Testing🌿
04TDD / BDD / SDDSDD🌿

B16 資安

#主題連結stage
01OWASP Top 10Web Security🌿
02SQL Injection / Parameterized Query🌱
03Secret 管理Secrets & Config🌿
04Dependency Scanning🌱
05API 安全(CORS / CSRF / Rate Limit)🌱

B17 觀測性

#主題連結stage
01結構化 Log 設計Generic Log🌿
02Metrics(Prometheus / StatsD)Metrics🌿
03Tracing(OpenTelemetry)🌱
04Log 聚合(Loki / ELK)Log Management🌿
05告警設計AlertsAlert Webhook🌿
06APM 與問題定位🌱

B18 部署與 DX

#主題連結stage
01容器化Containerization🌿
02Container RegistryContainer Registry🌿
03Kubernetes 部署K8s Series🌿
04CI/CD PipelineCD 核心CD🌿
05發布策略(Blue-Green / Canary / Rolling)Release Methodology🌿
06Migration 管理🌱
07環境管理Environment Planning🌿

B19 壓測與效能

#主題連結stage
01為什麼要做 API 壓測Why Stress Test🌿
02壓測平台架構平台架構🌿
03控制變因Controlled Variables🌿
04k6 腳本撰寫k6 Scripting🌿
05Grafana Dashboard 設計Grafana Dashboard🌿
06效能剖析與 profiling🌱

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/

  1. RESTful User CRUD — 路由、ORM、驗證、錯誤處理(相關:Base ControllerCRUD 壓測總覽
  2. Auth 系統(JWT + RBAC) — bcrypt、middleware、refresh token(相關:bcrypt 瓶頸
  3. 檔案上傳 + 圖片處理 — multipart、streaming、S3(相關:泛用 Log
  4. 任務佇列 + 通知 — Redis Queue、事件驅動、Email
  5. 拆微服務 — 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 時代B20AI 輔助後端 + LLM Backend
實作驅動walkthroughs/W04 無 framework(7 語言)、W05 Level 1~5