refactor 重構指引

重構指引(Refactoring Guide) 目錄 前言與目標 什麼是重構? 重構的核心目標 重構原則 基本原則 SOLID 原則在重構中的應用 重構時機 何時應該進行重構? 重構的紅綠燈系統 常見重構手法 提煉函數(Extract Function) 提煉類別(Extract Class) 簡化條件表達式(Simplify Conditional Expressions) 提煉常數(Extract Constants) 移除死程式碼(Remove Dead Code) 重構流程 標準重構流程 重構檢核清單 Java 重構最佳實務 IDE 重構工具使用 Maven 設定重構支援 重構中的測試策略 安全性考量 重構過程中的安全原則 重構中的資安檢核清單 效能考量 重構對效能的影響 效能測試與監控 重構工具與技術 靜態分析工具 自動化重構工具 持續整合中的重構 常見重構陷阱與解決方案 常見錯誤 最佳實務建議 重構案例研究 遺留系統重構 微服務重構 重構檢核清單 重構前檢核 重構中檢核 重構後檢核 團隊協作與重構 Code Review 中的重構 重構溝通策略 重構效果追蹤 短期追蹤 中期追蹤 長期追蹤 結論 前言與目標 什麼是重構? 重構(Refactoring)是指在不改變程式碼外部行為的前提下,對程式碼內部結構進行改善的過程。這是一種持續性的改進活動,旨在提升程式碼品質、可讀性和可維護性。 重構的核心目標 1. 提高可讀性 目標:讓程式碼更容易理解,降低未來維護的難度 效益: 新團隊成員能快速上手 減少程式碼理解時間 降低錯誤修改的風險 評估指標: 程式碼複雜度(Cyclomatic Complexity) 方法長度 類別職責單一性 2. 改善結構與設計 目標:優化架構,使程式更具彈性、可擴充性 效益: 更容易添加新功能 更好的模組化設計 符合 SOLID 設計原則 評估指標: 耦合度(Coupling) 內聚性(Cohesion) 設計模式使用適當性 3. 減少重複(DRY 原則) 目標:把重複的邏輯抽出來,讓程式碼更簡潔 效益: 減少程式碼維護成本 降低一致性問題 提高程式碼重用性 評估指標: 重複程式碼比例 共用元件使用率 4. 提升可測試性 目標:更清晰的結構有助於單元測試與整合測試 效益: 更容易編寫單元測試 提高測試覆蓋率 更好的依賴注入設計 評估指標: 測試覆蓋率 測試案例數量 模擬物件使用便利性 5. 降低技術債(Technical Debt) 目標:清理過時或混亂的程式碼,避免未來出現更多問題 效益: 提升開發效率 減少維護成本 降低系統風險 評估指標: SonarQube 品質評分 程式碼異味數量 安全漏洞數量 6. 促進團隊協作 目標:統一風格與結構,讓不同開發者更容易接手 效益: 提升團隊開發效率 降低知識傳承成本 統一開發標準 評估指標: 程式碼風格一致性 Code Review 效率 團隊生產力 重構原則 基本原則 1. 保持外部行為不變 重構過程中,程式的功能和對外介面不應改變 所有現有的測試案例應該繼續通過 使用者感受不到任何功能上的差異 2. 小步快跑 每次重構應該是小幅度的改動 頻繁進行測試驗證 避免大範圍的同時修改 3. 測試先行 重構前確保有足夠的測試覆蓋 重構過程中持續執行測試 新增測試案例以驗證重構結果 4. 循序漸進 按照優先順序進行重構 先解決最嚴重的程式碼異味 避免過度重構 SOLID 原則在重構中的應用 1. 單一職責原則(Single Responsibility Principle) // 重構前:一個類別負責多個職責 public class UserManager { public void saveUser(User user) { // 驗證使用者資料 if (user.getEmail() == null || !user.getEmail().contains("@")) { throw new IllegalArgumentException("Invalid email"); } // 儲存到資料庫 DatabaseConnection conn = new DatabaseConnection(); conn.save(user); // 發送通知郵件 EmailService emailService = new EmailService(); emailService.sendWelcomeEmail(user.getEmail()); } } // 重構後:職責分離 public class UserValidator { public void validate(User user) { if (user.getEmail() == null || !user.getEmail().contains("@")) { throw new IllegalArgumentException("Invalid email"); } } } public class UserRepository { public void save(User user) { DatabaseConnection conn = new DatabaseConnection(); conn.save(user); } } public class UserNotificationService { public void sendWelcomeNotification(String email) { EmailService emailService = new EmailService(); emailService.sendWelcomeEmail(email); } } public class UserService { private final UserValidator validator; private final UserRepository repository; private final UserNotificationService notificationService; public UserService(UserValidator validator, UserRepository repository, UserNotificationService notificationService) { this.validator = validator; this.repository = repository; this.notificationService = notificationService; } public void createUser(User user) { validator.validate(user); repository.save(user); notificationService.sendWelcomeNotification(user.getEmail()); } } 2. 開放封閉原則(Open/Closed Principle) // 重構前:修改現有程式碼來新增功能 public class DiscountCalculator { public double calculateDiscount(String customerType, double amount) { if ("REGULAR".equals(customerType)) { return amount * 0.05; } else if ("VIP".equals(customerType)) { return amount * 0.10; } else if ("PREMIUM".equals(customerType)) { return amount * 0.15; } return 0; } } // 重構後:使用策略模式,對擴展開放,對修改封閉 public interface DiscountStrategy { double calculateDiscount(double amount); } public class RegularCustomerDiscount implements DiscountStrategy { @Override public double calculateDiscount(double amount) { return amount * 0.05; } } public class VipCustomerDiscount implements DiscountStrategy { @Override public double calculateDiscount(double amount) { return amount * 0.10; } } public class PremiumCustomerDiscount implements DiscountStrategy { @Override public double calculateDiscount(double amount) { return amount * 0.15; } } public class DiscountCalculator { private final Map<String, DiscountStrategy> strategies; public DiscountCalculator() { strategies = Map.of( "REGULAR", new RegularCustomerDiscount(), "VIP", new VipCustomerDiscount(), "PREMIUM", new PremiumCustomerDiscount() ); } public double calculateDiscount(String customerType, double amount) { DiscountStrategy strategy = strategies.get(customerType); return strategy != null ? strategy.calculateDiscount(amount) : 0; } } 重構時機 何時應該進行重構? 1. 程式碼異味(Code Smells)出現時 長方法(Long Method):方法超過 20-30 行 大類別(Large Class):類別職責過多,超過 200-300 行 重複程式碼(Duplicated Code):相同或相似的程式碼片段重複出現 長參數列表(Long Parameter List):方法參數超過 3-4 個 2. 新增功能前 為新功能建立適當的架構基礎 清理相關的程式碼區域 確保新功能不會增加技術債 3. 修復 Bug 時 分析 Bug 產生的根本原因 改善可能導致類似問題的程式結構 增加相關的測試覆蓋 4. Code Review 過程中 發現程式碼可讀性問題 識別潛在的設計問題 統一團隊的程式碼風格 重構的紅綠燈系統 🟢 綠燈:適合重構 有充足的測試覆蓋(>80%) 沒有緊急的產品發布壓力 團隊對重構區域有充分了解 有足夠的時間進行測試驗證 🟡 黃燈:謹慎重構 測試覆蓋率中等(60-80%) 有適度的時間壓力 重構範圍較大 需要多人協作 🔴 紅燈:暫停重構 測試覆蓋率不足(<60%) 有緊急的產品發布 程式碼變動頻繁 缺乏領域知識 常見重構手法 1. 提煉函數(Extract Function) 目的 將重複的程式碼片段提煉成獨立的函數,提高重用性和可讀性。 ...

October 31, 2025 · 26 min · 5417 words · Eric Cheng

Refactoring重構教學

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 重構實務指引 團隊規範與最佳實務 ...

October 31, 2025 · 26 min · 5460 words · Eric Cheng

spec-kit使用教學

Spec-Kit 使用教學手冊 版本: 3.0 最後更新: 2026年3月25日 適用於: Spec-Kit v0.4.1+ / Spec Kit Templates - 0.4.1 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 倉庫分支與版本控制建議 2.7 擴充系統 (Extension System) 2.8 預設系統 (Presets System) 2.9 CLI 診斷指令 (doctor / status) 第三章:使用流程詳細說明 3.1 Step 1:撰寫 Spec (/speckit.specify) 3.2 Step 1a:澄清模糊需求 (/speckit.clarify) 3.3 Step 2:撰寫 Plan (/speckit.plan) 3.3a Step 2a:驗證 Plan (Plan Validation) 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 社群實作範例 (Community Walkthroughs) 6.5 社群工具生態系 (Community Friends) 6.6 術語表 6.7 快速指令參考 6.8 版本異動紀錄 (Changelog 摘要) 結語 前言 目的與適用對象 本手冊旨在幫助開發團隊快速掌握 Spec-Driven Development (SDD) 方法論,並透過 Spec-Kit 工具組與 AI 助手協作,建立高品質、可維護的軟體系統。 ...

October 31, 2025 · 91 min · 19281 words · Eric Cheng

spec-kit使用教學

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 助手協作,建立高品質、可維護的軟體系統。 ...

October 31, 2025 · 76 min · 16041 words · Eric Cheng

Spring Boot 教學

Spring Boot 教學手冊 文件資訊 作者: 技術團隊 版本: 1.0 更新日期: 2025-08-31 目標對象: 新進開發同仁、Spring Boot 初學者、認證考試準備者 目錄 Spring Boot 簡介 1.1 什麼是 Spring Boot? 1.2 Spring Boot 的核心特點 1.3 Spring Boot vs Spring Framework 1.4 專案常見應用場景 1.5 Spring Boot 版本選擇 1.6 章節小練習 1.7 實務注意事項 開發環境建置 2.1 系統需求 2.2 JDK 安裝與設定 2.3 Maven 安裝與設定 2.4 IDE 設定 2.5 Spring Initializr 使用 2.6 開發工具設定 2.7 專案建立實作 2.8 執行與測試 2.9 章節小練習 2.10 實務注意事項 Spring Boot 基礎 3.1 專案結構 3.2 Application Properties 設定 3.3 依賴注入 (Dependency Injection) 3.4 Spring Boot Starter 3.5 Bean 生命週期與作用域 3.6 Profile 環境管理 3.7 章節小練習 3.8 實務注意事項 RESTful API 開發 ...

October 31, 2025 · 52 min · 10928 words · Eric Cheng

Spring Framework教學

Spring Framework 教學手冊 目錄 Spring Framework 概述 1.1 什麼是 Spring Framework 1.2 Spring 生態系統 1.3 為什麼使用 Spring Framework 1.4 認證考點提示 1.5 實務案例 核心概念 2.1 控制反轉 (Inversion of Control, IoC) 2.2 依賴注入 (Dependency Injection, DI) 2.3 Bean 的概念 IoC 容器與依賴注入 3.1 IoC 容器深入解析 3.2 BeanFactory vs ApplicationContext 3.2.1 BeanFactory 3.2.2 ApplicationContext 3.3 Bean 定義與註冊 3.3.1 註解驅動的配置 3.3.2 Java 配置方式 3.4 依賴注入的進階特性 3.4.1 條件式注入 3.4.2 Qualifier 與 Primary 3.5 Bean 生命週期 3.6 ApplicationContext 事件機制 3.6.1 內建事件 3.6.2 自定義事件 3.7 認證考點提示 3.8 實務案例 Bean 管理 4.1 Bean 的作用域 4.1.1 Singleton 作用域 4.1.2 Prototype 作用域 4.1.3 Web 作用域 4.2 Bean 的初始化和銷毀 4.2.1 初始化方法 4.2.2 銷毀方法 4.3 Bean 的延遲初始化 4.4 條件式 Bean 創建 4.4.1 內建條件註解 4.4.2 自定義條件 4.5 Profile 環境配置 4.6 Factory Bean 模式 4.7 認證考點提示 4.8 實務案例 面向切面程式設計 (AOP) ...

October 31, 2025 · 73 min · 15420 words · Eric Cheng

SQL使用教學

SQL 使用教學手冊 目錄 1. SQL 基礎入門 1.1 什麼是 SQL? 1.2 SQL 的特點 1.3 SQL 語句分類 1.4 第一個 SQL 查詢 2. 資料庫基本概念 2.1 關聯式資料庫模型 2.2 基本概念解釋 2.3 資料類型 2.4 正規化(Normalization) 3. 基本查詢語法 3.1 SELECT 語句基礎 3.2 查詢所有欄位 3.3 查詢特定欄位 3.4 WHERE 條件查詢 3.5 排序 ORDER BY 3.6 限制結果筆數 3.7 去除重複 DISTINCT 4. 進階查詢技巧 4.1 聚合函數 4.2 GROUP BY 分組查詢 4.3 HAVING 分組篩選 4.4 JOIN 表格連接 4.5 子查詢(Subquery) 4.6 WITH 公用表格表達式(CTE) 4.7 視窗函數(Window Functions) 5. 資料操作語言 (DML) 5.1 INSERT - 新增資料 5.2 UPDATE - 更新資料 5.3 DELETE - 刪除資料 5.4 UPSERT - 插入或更新 5.5 批次處理最佳實務 6. 資料定義語言 (DDL) 6.1 CREATE - 建立資料庫物件 6.2 ALTER - 修改資料庫物件 6.3 DROP - 刪除資料庫物件 6.4 TRUNCATE - 清空表格 6.5 資料類型選擇指南 6.6 表格設計最佳實務 6.7 效能考量 7. 交易處理與併發控制 7.1 交易基本概念 7.2 交易控制語句 7.3 交易隔離等級 7.4 併發問題與解決方案 7.5 鎖定機制 7.6 實務交易處理模式 8. 索引與效能優化 8.1 索引基本概念 8.2 索引類型 8.3 索引設計策略 8.4 查詢效能分析 8.5 查詢優化技巧 8.6 分割與分片 8.7 效能監控與維護 9. 儲存程序與函數 9.1 儲存程序基礎 9.2 函數 9.3 控制流程結構 9.4 例外處理 10. 安全性與防護 10.1 SQL Injection 防護 10.2 存取控制與權限管理 10.3 資料加密 10.4 稽核與監控 11. 專案實務案例 11.1 電商系統資料庫設計 11.2 常用業務查詢 11.3 效能優化實作 12. 認證考試準備 12.1 Oracle SQL 認證要點 12.2 Microsoft SQL Server 認證要點 12.3 PostgreSQL 認證要點 12.4 IBM DB2 認證要點 12.5 認證考試技巧 13. 最佳實務與故障排除 13.1 常見錯誤與解決方案 13.2 效能優化建議 13.3 開發最佳實務 13.4 資源推薦 前言 歡迎來到 SQL 的世界!SQL(Structured Query Language,結構化查詢語言)是與資料庫溝通的標準語言。無論您是新進的開發同仁,還是希望深化資料庫技能的工程師,這份教學手冊都將帶您從零開始,循序漸進地掌握 SQL 的精髓。 ...

October 31, 2025 · 72 min · 15202 words · Eric Cheng

SSDLC_專案範本指南

SSDLC 專案範本指南 簡介 本指南提供安全軟體開發生命週期 (Secure Software Development Life Cycle, SSDLC) 的完整範本體系,旨在協助團隊透過 AI 輔助完成專案的各個階段開發任務。 SSDLC 階段概覽 1. 需求分析階段 (Requirements Analysis) 目標: 收集、分析並定義專案需求,建立安全需求規範 工作項目 業務需求收集 功能需求分析 非功能需求定義 安全需求識別 使用者故事撰寫 風險評估 技術細節和業務需求 需求追溯矩陣 安全威脅模型分析 合規性要求檢查 效能基準定義 2. 設計開發階段 (Design & Development) 目標: 進行系統架構設計和安全編碼實作 工作項目 系統架構設計 安全架構設計 資料庫設計 API 設計 編碼實作 程式碼審查 技術細節和業務需求 設計模式應用 安全編碼標準 程式碼品質標準 版本控制策略 3. 測試驗收階段 (Testing & Validation) 目標: 執行全面測試並進行安全驗證 工作項目 單元測試 整合測試 系統測試 效能測試 安全測試 使用者驗收測試 技術細節和業務需求 測試策略制定 自動化測試框架 安全測試工具 測試覆蓋率要求 4. 部署運維階段 (Deployment & Operations) 目標: 安全部署系統並建立持續監控機制 ...

October 31, 2025 · 1 min · 206 words · Eric Cheng

Thymeleaf使用教學

Thymeleaf 使用教學手冊 目錄 基礎概念 1.1 什麼是 Thymeleaf? 1.2 核心特色 1.2.1 自然模板特性 1.2.2 表達式豐富性 1.3 與其他模板引擎比較 1.3.1 詳細比較表 1.4 適用場景 1.5 工作流程 1.6 實務注意事項 環境建置 2.1 Spring Boot 專案整合 2.1.1 Maven 設定 2.1.2 Gradle 設定 2.2 目錄結構設定 2.3 應用程式設定 2.3.1 基本設定 (application.yml) 2.3.2 生產環境設定 (application-prod.yml) 2.4 IDE 設定 2.4.1 IntelliJ IDEA 設定 2.4.2 VS Code 設定 2.5 驗證安裝 2.5.1 建立控制器 2.5.2 建立模板 2.5.3 啟動應用程式 2.6 開發環境最佳化 2.6.1 熱重載設定 2.6.2 除錯設定 2.7 常見安裝問題 語法教學 3.1 基本標籤語法 3.1.1 文字輸出 (th:text) 3.1.2 HTML 輸出 (th:utext) 3.1.3 條件判斷 (th:if, th:unless) 3.1.4 迴圈遍歷 (th:each) 3.1.5 條件選擇 (th:switch, th:case) 3.2 屬性處理 3.2.1 設定屬性 (th:attr) 3.2.2 常用屬性快捷方式 3.2.3 CSS 類別處理 (th:classappend) 3.3 表達式語法 3.3.1 變數表達式 (${…}) 3.3.2 選擇表達式 (*{…}) 3.3.3 連結表達式 (@{…}) 3.3.4 訊息表達式 (#{…}) 3.3.5 片段表達式 (~{…}) 3.4 內建工具物件 3.4.1 日期工具 (#dates) 3.4.2 數字工具 (#numbers) 3.4.3 字串工具 (#strings) 3.4.4 集合工具 (#lists, #sets, #maps) 3.5 實務注意事項 3.6 模板繼承與片段 3.6.1 片段定義與使用 (th:fragment) 3.6.2 片段插入方式 3.6.3 佈局模板系統 3.6.4 參數化片段 3.6.5 片段選擇器 3.7 實務注意事項 3.8 表單處理 3.8.1 基本表單綁定 3.8.2 下拉選單處理 3.8.3 核取方塊處理 3.8.4 單選按鈕處理 3.8.5 檔案上傳處理 3.8.6 表單驗證錯誤處理 3.9 國際化 (i18n) 支援 3.9.1 設定國際化 3.9.2 訊息資源檔案 3.9.3 在模板中使用國際化 3.9.4 Java 程式碼中的國際化 3.9.5 日期和數字本地化 3.9.6 進階國際化實作 3.9.7 多語言最佳實務 3.10 實務注意事項 實務應用範例 ...

October 31, 2025 · 45 min · 9455 words · Eric Cheng

UI_UX設計指引範本

UI/UX 設計指引範本 Prompt 目標 指導 AI 進行用戶體驗和使用者介面設計,建立以使用者為中心的設計規範和原型。 角色設定 你是一位資深 UI/UX 設計師,具備豐富的使用者體驗設計經驗,熟悉設計思維、使用者研究方法和現代化介面設計原則。 任務描述 請協助我完成 {專案名稱} 的 UI/UX 設計工作。 專案設計背景 專案名稱: {填入專案名稱} 產品類型: {填入產品類型,如:Web應用、Mobile App、桌面應用} 目標使用者: {填入主要使用者群體} 使用情境: {填入主要使用場景} 設計風格偏好: {填入設計風格,如:簡約、現代、傳統} 品牌色彩: {填入品牌主色調} UI/UX 設計要求 請按照以下結構進行設計: 1. 使用者研究 使用者角色建立 使用者旅程地圖 痛點分析 需求優先級排序 2. 資訊架構設計 內容結構規劃 導航系統設計 資訊層級設計 搜尋和篩選機制 3. 互動設計 使用者流程設計 互動原型設計 微互動設計 回饋機制設計 4. 視覺設計 設計系統建立 色彩配置方案 字體系統設計 圖示和插圖風格 5. 響應式設計 多裝置適配策略 斷點設計規劃 彈性佈局設計 觸控優化設計 6. 無障礙設計 可及性標準遵循 色彩對比度檢查 鍵盤導航支援 螢幕閱讀器相容 輸出格式 # {專案名稱} UI/UX 設計規格 ## 1. 使用者研究 ### 1.1 使用者角色 (Personas) #### 主要使用者角色: [角色名稱] **基本資訊:** - 年齡: [年齡範圍] - 職業: [職業類型] - 技術熟悉度: [初級/中級/高級] - 使用裝置: [主要使用的裝置] **目標和需求:** - 主要目標: [使用者想要達成的目標] - 次要需求: [附加需求清單] - 成功指標: [如何衡量目標達成] **行為特徵:** - 使用習慣: [典型的使用模式] - 偏好: [介面和功能偏好] - 挫折點: [常見的困擾] **情境描述:** "[一段描述使用者在什麼情況下會使用這個產品的情境故事]" ### 1.2 使用者旅程地圖 #### 旅程階段1: 發現階段 **使用者行為:** [使用者在此階段的行為] **想法和感受:** [使用者的心理狀態] **觸點:** [與產品的接觸點] **痛點:** [遇到的問題] **機會點:** [改善的機會] #### 旅程階段2: 探索階段 **使用者行為:** [行為描述] **想法和感受:** [心理狀態] **觸點:** [接觸點] **痛點:** [問題點] **機會點:** [改善機會] #### 旅程階段3: 使用階段 **使用者行為:** [行為描述] **想法和感受:** [心理狀態] **觸點:** [接觸點] **痛點:** [問題點] **機會點:** [改善機會] ### 1.3 痛點分析矩陣 | 痛點 | 頻率 | 嚴重性 | 影響範圍 | 解決優先級 | |------|------|--------|----------|------------| | [痛點1] | [高/中/低] | [高/中/低] | [影響的使用者比例] | [高/中/低] | | [痛點2] | [高/中/低] | [高/中/低] | [影響的使用者比例] | [高/中/低] | ## 2. 資訊架構設計 ### 2.1 網站地圖 首頁 ├── 產品/服務 │ ├── 產品分類A │ ├── 產品分類B │ └── 產品詳細頁 ├── 關於我們 │ ├── 公司介紹 │ ├── 團隊介紹 │ └── 聯絡我們 ├── 支援中心 │ ├── 常見問題 │ ├── 使用指南 │ └── 技術支援 └── 使用者帳戶 ├── 個人資料 ├── 訂單記錄 └── 設定 ...

October 31, 2025 · 5 min · 994 words · Eric Cheng