Architecture Patterns Roadmap
系統層級的架構風格。跟 design-pattern(類別/物件層的 GoF 23 模式)是不同抽象層:
| 目錄 | 層 | 範圍 |
|---|
| architecture-patterns/(本目錄) | 系統/應用層 | 整個應用怎麼分層、資料怎麼流、命令怎麼下 |
| design-pattern/ | 類別/物件層 | GoF 23 模式、OO 設計 |
跨領域連結:
Stage:🌱 seed / 🌿 growing / 🌳 mature
分層架構家族
A01 Layered Architecture(N-tier)
| # | 主題 | stage |
|---|
| 01 | 經典三層:Presentation / Business / Data | 🌱 |
| 02 | N-tier 變形 | 🌱 |
| 03 | Anti-pattern:Anemic Domain Model | 🌱 |
A02 Clean Architecture
| # | 主題 | 連結 | stage |
|---|
| 01 | Clean Architecture 四層 + Dependency Rule + 實作 | clean-architecture | 🌿 |
| 02 | Dependency Rule 深入探討(進階) | — | 🌱 |
| 03 | 跨語言實作範例(Go / Python / Rust) | — | 🌱 |
A03 Hexagonal Architecture(Ports & Adapters)
| # | 主題 | stage |
|---|
| 01 | Hexagonal 的動機:跟 DB / Framework 解耦 | 🌱 |
| 02 | Port 與 Adapter 的定義 | 🌱 |
| 03 | 實作範例(TypeScript / Go) | 🌱 |
A04 MVC / MVP / MVVM
前端/後端都會用到的經典分層模式。
| # | 主題 | 連結 | stage |
|---|
| 01 | MVC 基礎 | MVC | 🌿 |
| 02 | MVP(Model-View-Presenter) | — | 🌱 |
| 03 | MVVM(Model-View-ViewModel,前端為主) | — | 🌱 |
| 04 | 三者差異與選擇 | — | 🌱 |
Domain 與資料家族
A05 Domain-Driven Design(DDD)
| # | 主題 | stage |
|---|
| 01 | DDD 核心概念:Ubiquitous Language | 🌱 |
| 02 | Bounded Context 與 Context Map | 🌱 |
| 03 | 戰術設計:Entity / Value Object / Aggregate | 🌱 |
| 04 | Domain Event | 🌱 |
| 05 | Repository Pattern | 🌱 |
| 06 | Application Service vs Domain Service | 🌱 |
| 07 | DDD + Clean + Hexagonal 整合實作 | 🌱 |
| 08 | DDD 誤用:不是所有專案都適合 | 🌱 |
A06 CQRS(Command Query Responsibility Segregation)
| # | 主題 | stage |
|---|
| 01 | CQRS 基礎:讀寫模型分離 | 🌱 |
| 02 | CQRS + Event Sourcing | 🌱 |
| 03 | CQRS 的成本與陷阱 | 🌱 |
A07 Event Sourcing
| # | 主題 | stage |
|---|
| 01 | Event Sourcing 基礎 | 🌱 |
| 02 | Event Store 設計 | 🌱 |
| 03 | Snapshot 策略 | 🌱 |
| 04 | Event Versioning | 🌱 |
通訊與整合家族
A08 Event-Driven Architecture
| # | 主題 | stage |
|---|
| 01 | Event-Driven 基礎 | 🌱 |
| 02 | Pub/Sub vs Event Notification vs Event-Carried State Transfer | 🌱 |
| 03 | Choreography vs Orchestration | 🌱 |
| 04 | Event Storm Workshop | 🌱 |
A09 Microservices
| # | 主題 | 連結 | stage |
|---|
| 01 | 微服務定義與拆分原則 | 微服務系列 | 🌿 |
| 02 | 服務邊界與 Bounded Context | — | 🌱 |
| 03 | Service Discovery 與 API Gateway | — | 🌱 |
| 04 | Saga Pattern(分散式交易) | — | 🌱 |
| 05 | Outbox Pattern | — | 🌱 |
| 06 | 失敗處理:Circuit Breaker、Bulkhead、Retry | — | 🌱 |
A10 SOA(Service-Oriented Architecture)
| # | 主題 | stage |
|---|
| 01 | SOA 歷史與現代微服務的差異 | 🌱 |
| 02 | ESB(Enterprise Service Bus) | 🌱 |
資料平面家族
A11 Lambda / Kappa(資料架構)
| # | 主題 | stage |
|---|
| 01 | Lambda Architecture(Batch + Stream) | 🌱 |
| 02 | Kappa Architecture(純 Stream) | 🌱 |
| 03 | Medallion Architecture(Bronze/Silver/Gold) | 🌱 |
A12 Serverless / FaaS
選擇與取捨
A13 架構選擇框架
| # | 主題 | stage |
|---|
| 01 | 怎麼選架構:業務 + 規模 + 團隊 | 🌱 |
| 02 | 從 Monolith 到 Microservice 的演進路徑 | 🌱 |
| 03 | 反向:從微服務合併回去(Monolith First) | 🌱 |
| 04 | 架構決策文件(ADR) | 🌱 |
| 05 | 架構演進 vs 重構 | 🌱 |
進度統計
- 主題群:13(A01~A13)
- 總子題:約 55
- 🌿 growing:3(MVC、微服務、Serverless 各已有基礎)
- 🌱 seed:52
- 🌳 mature:0
架構設計說明
本 roadmap 按「家族」組織:
| 家族 | 主題群 | 範圍 |
|---|
| 分層架構家族 | A01~A04 | Layered / Clean / Hexagonal / MVC 系列 |
| Domain 與資料家族 | A05~A07 | DDD / CQRS / Event Sourcing |
| 通訊與整合家族 | A08~A10 | Event-Driven / 微服務 / SOA |
| 資料平面家族 | A11~A12 | Lambda / Kappa / Serverless |
| 選擇與取捨 | A13 | 架構決策方法論 |