乾淨架構 (Clean Architecture)
由 Robert C. Martin (Uncle Bob) 提出的架構模式
核心概念
乾淨架構的目標是**依賴反轉**:業務邏輯不依賴框架、資料庫、UI。
┌─────────────────────────────────────┐
│ Frameworks │ ← 外部框架(Angular, Express)
├─────────────────────────────────────┤
│ Interface Adapters │ ← 控制器、資料庫連接
├─────────────────────────────────────┤
│ Application Business │ ← Use Cases
├─────────────────────────────────────┤
│ Enterprise Business │ ← Entities(核心業務規則)
└─────────────────────────────────────┘
為什麼要用?
| 好處 | 說明 |
|---|---|
| 可測試性 | 業務邏輯不依賴框架,可獨立測試 |
| 可維護性 | 改 UI 不會影響業務邏輯 |
| 可替換性 | 換資料庫不需要改業務邏輯 |
| 團隊協作 | 清晰的邊界讓多人同時開發 |
適用場景
- ✅ 中大型專案(3+ 人團隊)
- ✅ 需要長期維護的產品
- ✅ 業務邏輯複雜
- ❌ 簡單 CRUD 專案(殺雞用牛刀)
- ❌ 原型開發( Prototype )