Domain-Driven Design (DDD) 教學手冊 專為新進開發同仁設計的 DDD 學習指南 適用技術棧:Vue 3.x (前端) + Spring Boot (後端) + 前後端分離架構 📚 目錄 DDD 基礎概念 1.1 什麼是 Domain-Driven Design? 1.2 DDD 核心概念概覽 1.3 DDD 的三層架構 1.4 實務案例:電商系統 核心構建塊 (Building Blocks) 2.1 Entity (實體) 2.2 Value Object (值對象) 2.3 Aggregate (聚合) 2.4 Repository (儲存庫) 2.5 Domain Service (領域服務) 戰略設計 (Strategic Design) 3.1 Domain、Subdomain 識別 3.2 Bounded Context (有界上下文) 3.3 Context Map (上下文映射) 3.4 Ubiquitous Language (統一語言) 3.5 Event Storming 實務應用 戰術設計 (Tactical Design) 4.1 Domain Events (領域事件) 4.2 Factory Pattern 在 DDD 中的應用 4.3 Specification Pattern (規格模式) DDD 在專案中的實際應用 ...
Docs
Entity-Relationship Model (ER Model) 教學手冊 📋 目錄 基礎知識 1.1 什麼是 ER Model 1.2 核心概念 1.3 ERD 符號與規則 1.4 基礎實作練習 專案應用 2.1 需求分析到 ER Model 2.2 案例研究:電商平台 2.3 案例研究:銀行系統 2.4 轉換為資料庫 Schema 2.5 完整專案開發流程 進階主題 3.1 實體類型與關聯度 3.2 正規化理論 3.3 常見設計錯誤 3.4 最佳實務 認證準備 4.1 認證內容與範圍 4.2 練習題庫 4.3 模擬考題 4.4 重點知識摘要 學習路徑 5.1 學習步驟建議 5.2 推薦工具 5.3 進階學習資源 檢查清單 6.1 設計階段檢查清單 6.2 資料庫實作檢查清單 6.3 品質保證檢查清單 6.4 專案交付檢查清單 6.5 學習成果檢核 6.6 持續改進檢查 附錄 A. ERD 符號速查表 B. SQL 資料型別對照表 C. 常用正規化檢查 SQL D. 設計模式範本 E. 效能優化檢查清單 F. 安全性檢查清單 G. 版本更新記錄 🚀 快速開始 📖 學習建議 如果您是第一次接觸 ER Model,建議按照以下順序學習: 🔰 初學者路徑(預估 2-3 週) 📚 基礎建立:先閱讀「基礎知識」章節,建立基本概念 🛠️ 實作練習:透過「專案應用」的案例練習實作 📈 深化理解:學習「進階主題」深化理解 ✅ 成果驗證:使用「檢查清單」驗證學習成果 🎯 進階用戶路徑 如果您已具備基礎概念,可直接從第 2 章「專案應用」開始 需要準備認證考試的用戶,重點關注第 4 章「認證準備」 尋找工具和資源的用戶,參考第 5 章「學習路徑」 ⏱️ 時間投入建議 基礎學習:每天 1-2 小時,持續 2-3 週 實作練習:每週 3-5 小時的專案實作 認證準備:額外 2-3 週的集中複習 1. 基礎知識 1.1 什麼是 ER Model Entity-Relationship Model(實體關係模型) 是一種用來描述現實世界資料結構的概念模型。它幫助我們: ...
Hexagonal Architecture 設計教學手冊 📚 文件說明 本教學手冊旨在幫助新進同仁快速理解和應用 Hexagonal Architecture(六邊形架構)。透過循序漸進的方式,從基礎概念到實務應用,讓團隊成員能夠有效地運用這種架構模式進行軟體開發。 🎯 學習目標 理解 Hexagonal Architecture 的核心概念與設計理念 掌握 Ports & Adapters 模式的實作技巧 學會在實際專案中導入六邊形架構 提升程式碼的可測試性與可維護性 建立與團隊協作的共同語言 📖 目錄 Part 1. 基礎概念 認識 Hexagonal Architecture(六邊形架構) 1.1 Hexagonal 的由來與核心理念 1.2 與傳統分層架構的比較 1.3 Ports & Adapters 模式的核心概念 Hexagonal Architecture 的設計目標 2.1 解耦業務邏輯與基礎設施 2.2 減少技術債務與提升可測試性 2.3 支援 Domain-Driven Design 的角色 Hexagonal 與其他架構模式的關係 3.1 與 Clean Architecture 的異同 3.2 與 Onion Architecture 的異同 3.3 適用場景與限制 Part 2. 核心組件與實作模式 Ports & Adapters 詳解 4.1 定義與職責 4.2 輸入 Port / 輸出 Port 4.3 主動 Adapter / 被動 Adapter Domain 層的角色 ...
Microservices Architecture 設計教學手冊 版本: 1.0 更新日期: 2025年9月20日 適用對象: 新進開發同仁 編寫者: 系統架構師團隊 📖 手冊簡介 本手冊是為新進開發同仁設計的微服務架構(Microservices Architecture)實務教學文件。透過系統性的學習路徑,幫助開發人員從零基礎逐步掌握微服務設計與實作技能。 🎯 學習目標 完成本手冊學習後,您將能夠: 理解微服務架構的核心概念與設計原則 掌握微服務拆分與邊界劃分技巧 熟練應用各種微服務設計模式 具備實際專案開發與維護能力 通過相關技術認證考試 🚀 使用方式 循序漸進:按照章節順序學習,每章都有前置知識 理論實作並重:理解概念後立即進行實作練習 檢查清單驗證:每章結束使用檢查清單自我驗證 團隊討論:與同事分享學習心得,加深理解 📚 目錄 Part I. 基礎認識 1. 微服務架構簡介 1.1 為什麼需要微服務 1.2 單體架構 vs. 微服務架構 1.3 微服務的核心特徵 1.4 適用與不適用場景 2. 微服務與業界標準 2.1 SOA 與微服務的差異 2.2 Cloud Native 與微服務 2.3 與 Microservices Architecture 認證的關聯 Part II. 微服務設計原則 3. 微服務設計的基本原則 3.1 單一職責原則 (SRP) 3.2 高內聚、低耦合 3.3 獨立部署與擴展 3.4 容錯與恢復能力 4. 微服務邊界劃分 4.1 領域驅動設計 (DDD) 基礎 4.2 限界上下文 (Bounded Context) 4.3 服務拆分策略 Part III. 技術架構 5. 微服務通訊模式 5.1 同步通訊 5.2 非同步通訊 5.3 事件驅動架構 6. 資料管理策略 7. 配置與服務發現 Part IV. 微服務設計模式 8. 分解模式 8.1 Database per Service Pattern 8.2 Strangler Fig Pattern 8.3 Self-Contained Service Pattern 9. 通訊模式 9.1 API Gateway Pattern 9.2 Backend for Frontend (BFF) Pattern 10. 資料管理模式 10.1 Saga Pattern 10.2 CQRS Pattern 10.3 Event Sourcing Pattern 11. 可靠性模式 11.1 Circuit Breaker Pattern 11.2 Retry Pattern 11.3 Bulkhead Pattern Part V. 跨領域關注點 12. 安全性架構 12.1 身份驗證與授權 12.2 資料保護與加密 13. 監控與可觀察性 13.1 分散式追蹤 13.2 指標收集與監控 13.3 健康檢查與服務探測 14. 配置管理 14.1 集中化配置管理 14.2 功能開關 (Feature Toggles) Part VI. DevOps 與微服務 15. CI/CD 流水線 16. 容器化與 Kubernetes 17. Infrastructure as Code Part VII. 實戰指南 18. 微服務專案規劃 19. 實作步驟與最佳實務 20. 測試策略 21. 效能調優 Part VIII. 總結與資源 總結 最佳實務摘要 延伸學習資源 Part I. 基礎認識 1. 微服務架構簡介 1.1 為什麼需要微服務 🔍 單體架構的挑戰 在傳統的單體架構(Monolithic Architecture)中,整個應用程式被打包成一個單一的部署單元。隨著業務成長,會面臨以下問題: ...
Object-Relational Mapping (ORM) 物件關聯對映教學手冊 目錄 ORM 簡介 1.1 什麼是 ORM? 1.2 為什麼需要 ORM? 1.3 ORM 解決的問題 1.4 與 SQL/資料庫互動的關係 1.5 小結 ORM 的基本概念 2.1 實體 (Entity) 2.2 對應 (Mapping) 2.3 Session/EntityManager 2.4 Transaction (交易) 2.5 Lazy Loading vs Eager Loading 2.6 小結 ORM 工具與框架簡介 3.1 Java 生態系統 3.2 Python 生態系統 3.3 其他語言的 ORM 框架 3.4 ORM 框架比較 3.5 選擇 ORM 框架的考量因素 3.6 小結 安裝與設定 4.1 Java 環境設定 (Spring Boot + JPA) 4.2 Python 環境設定 (SQLAlchemy) 4.3 開發環境驗證 4.4 常見安裝問題與解決方案 4.5 小結 基本 CRUD 範例 ...
Onion Architecture 設計教學手冊 版本:1.0 日期:2025年9月20日 適用對象:Java 開發新進同仁 目標:學習 Onion Architecture 設計與認證準備 📚 目錄 第 1 章:緒論 1.1 教學手冊的目的與對象 1.2 為什麼需要 Onion Architecture 1.3 與傳統分層架構、Hexagonal Architecture、Clean Architecture 的比較 1.4 如何透過本手冊準備 Onion Architecture 認證 第 2 章:Onion Architecture 基礎概念 2.1 Onion Architecture 的核心理念 2.2 各層級設計原則 2.3 依賴反轉原則 (Dependency Inversion Principle) 2.4 Onion Architecture 的優點與限制 第 3 章:分層解析 3.1 Domain Layer - 實體與商業規則 3.2 Application Layer - 用例與服務 3.3 Infrastructure Layer - 技術支援與外部資源 3.4 Presentation Layer - 使用者介面與 API 3.5 層與層之間的互動與依賴管理 第 4 章:實作指南 ...
Refactoring(重構)教學手冊 📚 目錄 重構基本概念 1.1 什麼是重構? 1.2 重構的目標 1.3 重構 vs 重寫 1.4 實務案例 重構的基本原則 2.1 紅燈-綠燈-重構循環 2.2 重構的黃金法則 2.3 重構的時機 2.4 安全重構的步驟 2.5 實務注意事項 識別壞味道(Code Smells) 3.1 什麼是程式碼壞味道? 3.2 常見的程式碼壞味道 3.2.1 過長方法(Long Method) 3.2.2 過多參數(Long Parameter List) 3.2.3 重複程式碼(Duplicated Code) 3.2.4 過大類別(Large Class) 3.2.5 壞味道的量化指標 3.3 壞味道識別工具 3.4 實務練習 常見重構方法 4.1 方法層級重構 4.1.1 Extract Method(提取方法) 4.1.2 Rename Variable(重新命名變數) 4.1.3 Introduce Parameter Object(引入參數物件) 4.1.4 Replace Method with Method Object(以方法物件取代方法) 4.2 類別層級重構 4.2.1 Extract Class(提取類別) 4.2.2 Move Method(搬移方法) 4.3 條件邏輯重構 4.3.1 Replace Conditional with Polymorphism(以多型取代條件式) 4.4 重構方法選擇流程 4.4.1 重構決策樹 4.4.2 重構優先順序指南 4.5 實務練習 重構與測試的關聯 5.1 重構的安全網:單元測試 5.2 測試先行的重構策略 5.3 TDD 與重構的結合 5.4 重構時的測試最佳實務 5.5 重構測試檢查清單 實務應用策略 6.1 重構時機的判斷 6.2 團隊重構策略 6.3 大型專案重構策略 6.4 效能考量 6.5 重構實務指引 團隊規範與最佳實務 ...
Spec-Kit 使用教學手冊 版本: 1.0 最後更新: 2025年10月29日 適用於: Spec-Kit v0.0.79+ Created by: Eric Cheng 📚 目錄 前言 目的與適用對象 背景說明:為何採用 SDD + Spec-Kit → AI 助手流程 本手冊使用假設 第一章:概念理解 1.1 SDD 是什麼? 1.2 Spec-Kit 概覽 1.3 SDD 中的關鍵 artefacts(工件) 1.4 流程概覽:SDD 的階段/步驟 1.5 為什麼這對我們團隊/共用平台開發特別有價值 第二章:環境準備 2.1 前置條件 2.2 安裝 Spec-Kit CLI 2.3 建立專案與初始化 2.4 建立團隊守則 (Constitution) 2.5 模板與提示文件說明 2.6 GitHub 倉庫分支與版本控制建議 第三章:使用流程詳細說明 3.1 Step 1:撰寫 Spec (/speckit.specify) 3.2 Step 1a:澄清模糊需求 (/speckit.clarify) 3.3 Step 2:撰寫 Plan (/speckit.plan) 3.4 Step 3:拆分 Tasks (/speckit.tasks) 3.5 Step 4:預實作檢查 (/speckit.analyze + /speckit.checklist) 3.6 Step 5:實作 (/speckit.implement) 3.7 Step 6:迭代維護 第四章:實務案例與應用指引 4.1 案例一:Greenfield 開發 - 新建交易記錄微服務 4.2 案例二:Brownfield 整合 - 為既有系統新增功能 4.3 團隊協作:多人開發 4.4 AI 助手最佳實踐 4.5 平台導入建議 第五章:常見問題與陷阱 5.1 常見問題(FAQ) 5.2 常見陷阱與避免方法 第六章:附錄 6.1 完整模板範例 6.2 檢查清單 6.3 參考資源 6.4 術語表 6.5 快速指令參考 結語 前言 目的與適用對象 本手冊旨在幫助開發團隊快速掌握 Spec-Driven Development (SDD) 方法論,並透過 Spec-Kit 工具組與 AI 助手協作,建立高品質、可維護的軟體系統。 ...
物件導向分析與設計 (OOAD) 教學手冊 作者: 系統架構師團隊 更新日期: 2025年9月1日 適用對象: 新進開發同仁 版本: v1.0 📚 目錄 前言與學習目標 1.1 為什麼要學習 OOAD? 1.2 學習目標 1.3 學習路徑 1.4 前置知識 OOAD 基礎概念 2.1 什麼是物件導向? 2.2 核心概念詳解 2.3 OOAD 的設計原則 2.4 實務案例:學生管理系統 2.5 章節小結 OOAD 開發流程 3.1 OOAD 流程概覽 3.2 階段一:需求分析 3.3 階段二:系統分析 3.4 階段三:系統設計 3.5 階段四:詳細設計 3.6 階段五:程式實作 3.7 階段六:測試與驗證 3.8 章節小結 UML 與 OOAD 的關係 4.1 UML 簡介 4.2 UML 圖形分類 4.3 核心 UML 圖形詳解 4.4 UML 工具與最佳實務 4.5 章節小結 專案實務應用範例 5.1 專案背景:大學課程管理系統 5.2 階段一:需求分析與 Use Case 設計 5.3 階段二:領域分析與建模 5.4 階段三:架構設計 5.5 階段四:詳細設計 5.6 階段五:關鍵循序圖 5.7 實作關鍵功能 5.8 章節小結 常見錯誤與最佳實務 6.1 分析階段常見錯誤 6.2 設計階段常見錯誤 6.3 實作階段常見錯誤 6.4 UML 建模最佳實務 6.5 程式碼品質準則 6.6 效能與安全性考量 6.7 章節小結 UML 認證考試重點 ...
統一建模語言(UML)教學手冊 目錄 UML 基礎概念 1.1 什麼是 UML? 1.2 UML 的用途與價值 1.3 UML 圖表分類 1.4 實務注意事項 常用 UML 圖表教學 2.1 用例圖(Use Case Diagram) 2.2 類別圖(Class Diagram) 2.3 序列圖(Sequence Diagram) 2.4 活動圖(Activity Diagram) 2.5 狀態圖(State Diagram) 2.6 元件圖(Component Diagram) 2.7 部署圖(Deployment Diagram) 實務應用情境 3.1 專案生命週期中的 UML 應用 3.2 不同專案類型的 UML 選擇 3.3 團隊協作中的 UML 專案實作指引 4.1 UML 建模流程 4.2 我們專案中的 UML 應用範例 4.3 建模最佳實務 工具介紹 5.1 常用 UML 工具比較 5.2 PlantUML 詳細介紹 5.3 在我們專案中整合 UML 工具 實務範例:學生管理系統 6.1 專案背景 6.2 Step-by-Step UML 建模 6.3 架構設計 - 元件圖 6.4 部署建模 - 部署圖 6.5 其他領域實務範例 6.6 跨領域建模經驗總結 認證考試準備 7.1 OMG UML 認證概述 7.2 考試重點知識 7.3 學習路線圖 7.4 考試技巧 附錄 ...