# Clean Architecture 實戰

> 不再只是資料夾分層：以 Go 與 TypeScript 實作前後端，理解依賴規則、職責邊界，以及每個設計決策背後的取捨。

- 課程頁面: https://progrmatic.com/courses/clean-architecture
- 價格: 免費
- 狀態: 即將推出，尚未開賣
- 語言: 繁體中文
- 提供者: Progrmatic

## 課程介紹

## 💡 Clean Architecture，真的只是把程式碼分成幾層嗎？

網路上有許多 Clean Architecture 的教學，從架構圖到專案目錄結構，各有不同的實作方式。但當真正開始開發一套系統時，我們仍然可能遇到相同的疑問：為什麼需要這些分層？職責與依賴應該如何劃分？又該如何知道自己的設計是否合理？

**Clean Architecture 的價值，不在於建立多少層資料夾，而在於透過清晰的職責邊界與依賴規則，管理系統的複雜度。**

這門課將以 Go 為主要後端實作語言，從 Entities、Use Cases 到 Interface Adapters 與 Frameworks & Drivers，逐步探索各層的責任、依賴關係與實作方式，並結合規格先行（Spec-first）、依賴注入與自動化測試，建立能夠實際運作的系統。

但 Clean Architecture 並不只適用於後端。我們也將在前端建立獨立的四層架構，探索相同的設計原則如何因應不同的技術環境與需求。

此外，課程也會適度結合基本的領域建模觀念，理解如何表達業務規則，以及 Clean Architecture 與領域驅動設計（DDD）之間的關聯與差異。

在 AI 能夠快速生成大量程式碼的今天，清晰的架構邊界也能為持續開發提供更明確的方向，讓我們更容易理解、驗證與調整系統的演進。

我們不追求套用最多的抽象或建立最複雜的架構，而是希望透過完整的實作過程，**理解每個設計決策背後的原因，以及它所帶來的價值與取捨。**

## 🎯 這門課你將學到什麼？

- **Clean Architecture 核心原則：** 理解依賴規則（Dependency Rule）、職責邊界與分層設計，探索如何讓核心業務邏輯與框架及基礎設施解耦。
- **後端架構與實作：** 透過 Go 實作 Entities、Use Cases、Interface Adapters 與 Frameworks & Drivers，理解各層如何協作，以及如何組裝依賴。
- **基本領域建模觀念：** 探索業務規則、不變條件（Invariants）與物件職責，適度認識 DDD 的基本概念，理解如何建立符合需求的業務模型。
- **規格與自動化驗證：** 結合 OpenAPI、單元測試、整合測試與行為驅動開發（BDD）等實踐方式，探索如何讓需求、實作與測試相互對應。
- **前端 Clean Architecture：** 使用 TypeScript 建立獨立的四層架構，理解如何分離業務規則、應用流程、Presenter 與框架相關實作。
- **系統整合與持續演進：** 從資料持久化、依賴注入到前後端整合，探索如何在功能持續增加時，維持清晰且容易測試的系統結構。

## 👥 適合對象

- **資訊相關科系學生：** 已具備基本程式設計與專案開發經驗，希望進一步理解軟體架構的設計與實際應用。
- **後端與全端開發者：** 曾經開發 API 或完整專案，希望改善職責劃分、依賴管理與系統可維護性。
- **對軟體架構有興趣的工程師：** 接觸過 Clean Architecture、DDD 或 SOLID 等觀念，希望透過實際案例理解如何將設計原則落地。
- **AI 輔助開發使用者：** 希望建立更清晰的架構邊界，讓 AI 加速開發的同時，仍能有效理解、驗證與維護持續演進的系統。

## 📌 開始之前

建議具備基本的 Go 與 TypeScript 語法能力，並曾經開發過 API 或完整的 Web 專案。若主要使用其他語言，只要熟悉介面（Interface）與模組化的基本觀念，也能理解課程中的設計原則，但實作部分可能需要額外熟悉 Go 的語法。

建議具備基本的 HTTP、SQL 與 Git 操作經驗，並能在本機使用 Docker 執行開發環境。

前端部分將以 TypeScript 實作核心的四層架構，並以 SvelteKit 作為框架層進行示範；相同的設計原則也同樣適用於 React、Vue 等其他前端框架。

課程會介紹與 Clean Architecture 相關的基本領域建模觀念，但不以完整介紹領域驅動設計（DDD）為目標，也不涵蓋正式環境的部署與維運。

**好的架構不在於遵循固定的目錄結構，而在於理解每一道邊界存在的理由，並根據實際需求做出合理的設計選擇。**

## 課程大綱

### 1. Clean Architecture 的核心思想 (即將推出)

### 2. 從 Entites 到 Use Cases (即將推出)

### 3. Interface Adapters 與 Frameworks & Drivers (即將推出)

### 4. 組裝一個真正能運作的 Go Backend (即將推出)

### 5. 讓架構真正可測試 (即將推出)

### 6. Clean Architecture 不只在後端 (即將推出)
