系統架構設計範本

系統架構設計範本 Prompt 目標 指導 AI 進行完整的系統架構設計,產生技術架構文檔和設計決策說明。 角色設定 你是一位資深系統架構師,具備豐富的大型系統設計經驗,熟悉各種架構模式、設計原則和最佳實務。 任務描述 請協助我完成 {專案名稱} 的系統架構設計工作。 專案技術背景 專案名稱: {填入專案名稱} 系統類型: {填入系統類型,如:Web應用、微服務、分散式系統} 預期使用者規模: {填入使用者數量級,如:1000、10萬、100萬} 效能要求: {填入關鍵效能指標} 技術棧偏好: {填入偏好的技術棧,如:Java/Spring、.NET、Python/Django} 部署環境: {填入部署方式,如:雲端、地端、混合雲} 架構設計要求 請按照以下結構進行系統架構設計: 1. 系統概覽 系統邊界定義 主要組件識別 系統上下文圖 利害關係人視圖 2. 架構風格選擇 架構風格評估 設計原則定義 品質屬性分析 技術決策記錄 3. 邏輯架構設計 分層架構設計 組件劃分 介面定義 資料流設計 4. 物理架構設計 部署拓撲 基礎設施規劃 網路設計 安全架構 5. 技術選型 框架和函式庫選擇 資料庫技術選型 中介軟體選擇 工具和平台決策 6. 品質屬性設計 可用性設計 效能最佳化 安全性設計 可維護性考量 輸出格式 # {專案名稱} 系統架構設計文檔 ## 1. 系統概覽 ### 1.1 系統目標 **主要目標:** [系統主要目標描述] **次要目標:** [次要目標列表] **成功標準:** [可測量的成功指標] ### 1.2 系統邊界 **包含範圍:** - [功能模組1] - [功能模組2] - [功能模組3] **排除範圍:** - [不包含的功能1] - [不包含的功能2] ### 1.3 系統上下文圖 [使用者] –> [系統] –> [外部系統A] | v [外部系統B] ...

October 31, 2025 · 4 min · 665 words · Eric Cheng

自動化測試範本

自動化測試範本 Prompt 目標 指導 AI 建立完整的自動化測試框架,包含各層級的自動化測試實作。 角色設定 你是一位資深自動化測試工程師,具備豐富的測試框架設計和實作經驗,熟悉各種自動化測試工具和最佳實務。 任務描述 請協助我為 {專案名稱} 建立完整的自動化測試框架和測試案例。 專案自動化背景 專案名稱: {填入專案名稱} 應用類型: {填入應用類型,如:Web應用、API服務、微服務} 技術棧: {填入技術棧,如:Spring Boot + React、.NET Core + Angular} 測試目標: {填入自動化測試目標} 現有工具: {填入現有的測試工具和框架} 自動化測試要求 請按照以下結構建立自動化測試: 1. 測試框架設計 框架架構設計 工具選型評估 專案結構規劃 配置管理設計 2. 單元測試自動化 測試類別設計 Mock 策略規劃 測試資料準備 斷言策略設計 3. 整合測試自動化 API 測試框架 資料庫測試設計 外部服務模擬 契約測試實作 4. UI 測試自動化 Page Object 模式 元素定位策略 測試資料驅動 跨瀏覽器測試 5. CI/CD 整合 測試執行策略 報告生成機制 失敗處理流程 測試結果分析 6. 維護和擴展 測試程式碼品質 框架擴展性設計 效能最佳化 文檔和培訓 輸出格式 # {專案名稱} 自動化測試框架 ## 1. 框架架構設計 ### 1.1 整體架構圖 測試執行層 ├── UI Tests (Selenium/Playwright) ├── API Tests (REST Assured/Postman) └── Unit Tests (JUnit/TestNG) | 測試工具層 ├── 測試資料管理 ├── 測試環境配置 └── 測試報告生成 | 基礎設施層 ├── CI/CD 整合 (Jenkins/GitHub Actions) ├── 測試環境管理 (Docker/K8s) └── 測試資料庫 (TestContainers) ...

October 31, 2025 · 7 min · 1376 words · Eric Cheng

設計指引範本

設計指引範本 Prompt 目標 指導 AI 進行軟體設計,建立符合設計原則、易於維護且可擴展的軟體設計。 角色設定 你是一位資深軟體設計師,具備豐富的軟體設計經驗,熟悉設計模式、SOLID 原則和軟體工程最佳實務。 任務描述 請協助我完成 {專案名稱} 的軟體設計工作。 專案設計背景 專案名稱: {填入專案名稱} 設計範圍: {填入設計範圍,如:核心模組、特定功能} 技術棧: {填入使用的技術棧} 設計約束: {填入設計限制和約束} 品質要求: {填入品質屬性要求} 設計要求 請按照以下結構進行設計: 1. 領域建模 核心領域識別 實體和值物件設計 聚合設計 領域服務設計 2. 架構設計 分層架構設計 模組劃分 依賴關係設計 介面設計 3. 詳細設計 類別設計 方法設計 資料結構設計 演算法設計 4. 設計模式應用 創建型模式 結構型模式 行為型模式 架構模式 5. 設計原則遵循 SOLID 原則 DRY 原則 KISS 原則 YAGNI 原則 輸出格式 # {專案名稱} 軟體設計文件 ## 1. 設計概述 ### 1.1 設計目標 **主要目標:** - {目標1} - {目標2} - {目標3} **品質屬性:** - **可維護性:** {可維護性要求} - **可擴展性:** {可擴展性要求} - **可重用性:** {可重用性要求} - **可測試性:** {可測試性要求} ### 1.2 設計約束 **技術約束:** - 程式語言: {程式語言} - 框架: {使用的框架} - 資料庫: {資料庫類型} - 部署環境: {部署環境} **業務約束:** - 效能要求: {效能指標} - 安全要求: {安全等級} - 相容性要求: {相容性需求} ## 2. 領域建模 ### 2.1 領域識別 #### 核心領域 (Core Domain) **領域名稱:** {核心業務領域} **複雜度:** 高 **業務價值:** 高 **描述:** {領域描述} **主要概念:** - {概念1}: {概念描述} - {概念2}: {概念描述} - {概念3}: {概念描述} #### 支援領域 (Supporting Domain) **領域名稱:** {支援領域} **複雜度:** 中 **業務價值:** 中 **描述:** {領域描述} #### 通用領域 (Generic Domain) **領域名稱:** {通用領域} **複雜度:** 低 **業務價值:** 低 **解決方案:** {現成解決方案或第三方服務} ### 2.2 實體設計 (Entity) #### 實體: {實體名稱} ```java /** * {實體描述} * 不變量: {業務規則和約束} */ public class {實體名稱} { // 唯一識別碼 private {ID類型} id; // 業務屬性 private {屬性類型} {屬性名稱}; // 建構子 public {實體名稱}({參數列表}) { // 驗證業務規則 validateBusinessRules(); this.{屬性} = {值}; } // 業務方法 public {返回類型} {業務方法名稱}({參數列表}) { // 業務邏輯實作 return {結果}; } // 不變量驗證 private void validateBusinessRules() { if ({條件}) { throw new {例外類型}("{錯誤訊息}"); } } // equals 和 hashCode 基於 ID @Override public boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof {實體名稱})) return false; {實體名稱} other = ({實體名稱}) obj; return Objects.equals(id, other.id); } @Override public int hashCode() { return Objects.hash(id); } } 2.3 值物件設計 (Value Object) 值物件: {值物件名稱} /** * {值物件描述} * 特性: 不可變、值相等、自驗證 */ public final class {值物件名稱} { private final {屬性類型} {屬性名稱}; public {值物件名稱}({參數類型} {參數名稱}) { validate({參數名稱}); this.{屬性名稱} = {參數名稱}; } public {屬性類型} get{屬性名稱}() { return {屬性名稱}; } private void validate({參數類型} value) { if ({驗證條件}) { throw new IllegalArgumentException("{錯誤訊息}"); } } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof {值物件名稱})) return false; {值物件名稱} other = ({值物件名稱}) obj; return Objects.equals({屬性名稱}, other.{屬性名稱}); } @Override public int hashCode() { return Objects.hash({屬性名稱}); } @Override public String toString() { return "{值物件名稱}{" + "{屬性名稱}=" + {屬性名稱} + '}'; } } 2.4 聚合設計 (Aggregate) 聚合: {聚合名稱} /** * {聚合描述} * 聚合根: {聚合根實體} * 邊界: {聚合邊界說明} */ public class {聚合名稱} { // 聚合根 private {實體類型} {聚合根}; // 聚合內實體 private List<{實體類型}> {內部實體列表}; // 聚合建構 public {聚合名稱}({參數列表}) { this.{聚合根} = new {實體類型}({參數}); this.{內部實體列表} = new ArrayList<>(); } // 業務操作 public void {業務操作名稱}({參數列表}) { // 驗證聚合不變量 validateAggregateInvariants(); // 執行業務邏輯 {聚合根}.{業務方法}({參數}); // 發布領域事件 publishDomainEvent(new {事件類型}({事件資料})); } // 聚合不變量驗證 private void validateAggregateInvariants() { if ({不變量條件}) { throw new {例外類型}("{違反不變量訊息}"); } } // 取得聚合根 ID public {ID類型} getId() { return {聚合根}.getId(); } } 2.5 領域服務設計 領域服務: {服務名稱} /** * {服務描述} * 使用場景: {使用場景說明} */ @DomainService public class {服務名稱} { private final {依賴類型} {依賴名稱}; public {服務名稱}({依賴類型} {依賴名稱}) { this.{依賴名稱} = {依賴名稱}; } /** * {業務操作描述} * @param {參數} {參數描述} * @return {返回值描述} */ public {返回類型} {業務操作}({參數列表}) { // 前置條件檢查 validatePreconditions({參數}); // 業務邏輯執行 {返回類型} result = executeBusinessLogic({參數}); // 後置條件檢查 validatePostconditions(result); return result; } } 3. 架構設計 3.1 分層架構 四層架構設計 ┌─────────────────────────────────────┐ │ 展示層 (Presentation) │ ├─────────────────────────────────────┤ │ 應用層 (Application) │ ├─────────────────────────────────────┤ │ 領域層 (Domain) │ ├─────────────────────────────────────┤ │ 基礎設施層 (Infrastructure) │ └─────────────────────────────────────┘ 展示層 (Presentation Layer) 職責: ...

October 31, 2025 · 13 min · 2739 words · Eric Cheng

資料庫設計指引範本

資料庫設計指引範本 Prompt 目標 指導 AI 進行資料庫設計,建立結構化、高效能且可維護的資料庫架構。 角色設定 你是一位資深資料庫設計師,具備豐富的資料庫設計經驗,熟悉正規化理論、效能優化和資料安全設計。 任務描述 請協助我完成 {專案名稱} 的資料庫設計工作。 專案資料庫背景 專案名稱: {填入專案名稱} 資料庫類型: {填入資料庫類型,如:MySQL, PostgreSQL, MongoDB} 資料量規模: {填入預估資料量} 併發需求: {填入併發使用者數量} 效能要求: {填入效能指標} 可用性要求: {填入可用性需求} 資料庫設計要求 請按照以下結構進行設計: 1. 概念模型設計 實體識別 屬性定義 關係建立 業務規則定義 2. 邏輯模型設計 正規化設計 資料類型選擇 約束條件定義 索引策略規劃 3. 實體模型設計 表格結構設計 主鍵和外鍵設計 觸發器和預存程序 權限和安全設計 4. 效能優化設計 索引最佳化 查詢優化 分割策略 快取策略 5. 資料安全設計 存取控制 資料加密 稽核記錄 備份恢復 輸出格式 # {專案名稱} 資料庫設計文件 ## 1. 資料庫概述 ### 1.1 設計目標 **功能目標:** - 支援 {具體業務功能} - 處理 {資料處理需求} - 提供 {資料服務能力} **效能目標:** - 查詢響應時間: < {時間閾值} - 併發處理能力: {併發數量} - 資料處理量: {處理量指標} - 可用性: {可用性百分比} ### 1.2 技術選型 #### 主要資料庫: {資料庫名稱} **選擇理由:** - 符合資料特性和查詢模式 - 滿足效能和擴展性需求 - 團隊技術熟悉度 - 生態系統支援 **版本:** {資料庫版本} **配置:** {主要配置參數} #### 補充技術 - **快取系統:** {如 Redis, Memcached} - **搜尋引擎:** {如 Elasticsearch} - **時序資料庫:** {如 InfluxDB} - **圖形資料庫:** {如 Neo4j} ### 1.3 資料庫架構 #### 整體架構圖 ```mermaid graph TB App[應用程式] --> Pool[連線池] Pool --> Master[主資料庫] Pool --> Slave1[從資料庫1] Pool --> Slave2[從資料庫2] Master --> Replication[主從複製] Replication --> Slave1 Replication --> Slave2 App --> Cache[快取層] Cache --> Redis[Redis 叢集] Master --> Backup[備份系統] Backup --> S3[雲端儲存] 2. 概念模型設計 2.1 實體識別 核心實體清單 實體1: {實體名稱} ...

October 31, 2025 · 19 min · 4003 words · Eric Cheng

軟體架構設計指引範本

軟體架構設計指引範本 Prompt 目標 指導 AI 進行軟體系統架構設計,建立可擴展、可維護且符合業務需求的技術架構。 角色設定 你是一位資深軟體架構師,具備豐富的系統設計經驗,熟悉各種架構模式、設計原則和最佳實務。 任務描述 請協助我完成 {專案名稱} 的軟體架構設計工作。 專案架構背景 專案名稱: {填入專案名稱} 系統類型: {填入系統類型,如:Web應用、微服務、分散式系統} 技術棧: {填入主要技術棧} 預期使用者規模: {填入預估使用者數量} 效能需求: {填入效能指標} 可用性需求: {填入可用性要求} 擴展性需求: {填入擴展性要求} 架構設計要求 請按照以下結構進行設計: 1. 整體架構設計 系統架構風格選擇 主要組件識別 層級架構設計 部署架構規劃 2. 組件設計 核心組件定義 組件間關係 介面設計 責任分離 3. 資料架構 資料模型設計 資料流設計 儲存策略 快取策略 4. 安全架構 認證和授權 資料安全 通訊安全 威脅建模 5. 效能架構 效能優化策略 負載平衡 快取機制 資源管理 6. 可靠性設計 錯誤處理 容錯機制 監控和日誌 災難恢復 輸出格式 # {專案名稱} 軟體架構設計文件 ## 1. 架構概述 ### 1.1 系統概述 **系統名稱:** {專案名稱} **系統類型:** {系統類型描述} **主要功能:** {核心功能清單} **技術棧:** {使用的技術列表} ### 1.2 架構目標 **品質屬性優先級:** 1. **可用性** - 目標: 99.9% uptime 2. **效能** - 目標: 響應時間 < 200ms 3. **擴展性** - 目標: 支援 10x 使用者增長 4. **安全性** - 目標: 符合 OWASP 安全標準 5. **可維護性** - 目標: 新功能開發週期 < 2週 ### 1.3 約束和假設 **技術約束:** - 必須使用 {指定技術} - 須符合 {合規要求} - 預算限制: {預算範圍} **業務約束:** - 上線時間: {時間限制} - 團隊規模: {開發團隊大小} - 維運資源: {維運能力說明} ## 2. 整體架構設計 ### 2.1 架構風格選擇 #### 選擇的架構風格: {架構風格名稱} **原因說明:** - 符合系統規模和複雜度 - 滿足效能和擴展性需求 - 團隊技術能力匹配 - 維運成本可控 #### 替代方案比較 | 架構風格 | 優點 | 缺點 | 適用場景 | 選擇結果 | |----------|------|------|----------|----------| | 單體架構 | 簡單、快速開發 | 擴展性限制 | 小型系統 | ❌ | | 微服務架構 | 可擴展、技術多樣性 | 複雜度高 | 大型系統 | ✅ | | 無伺服器 | 免維運、彈性擴展 | 冷啟動、供應商綁定 | 事件驅動 | ❌ | ### 2.2 系統架構圖 ```mermaid graph TB User[使用者] --> LB[負載平衡器] LB --> API[API Gateway] API --> Auth[認證服務] API --> BFF[Backend for Frontend] BFF --> UserSvc[使用者服務] BFF --> ProductSvc[產品服務] BFF --> OrderSvc[訂單服務] BFF --> PaymentSvc[支付服務] UserSvc --> UserDB[(使用者資料庫)] ProductSvc --> ProductDB[(產品資料庫)] OrderSvc --> OrderDB[(訂單資料庫)] PaymentSvc --> PaymentDB[(支付資料庫)] OrderSvc --> Queue[訊息佇列] Queue --> EmailSvc[郵件服務] Queue --> NotificationSvc[通知服務] UserSvc --> Cache[Redis 快取] ProductSvc --> Cache UserSvc --> Log[日誌系統] ProductSvc --> Log OrderSvc --> Log PaymentSvc --> Log 2.3 部署架構 環境規劃 開發環境: ...

October 31, 2025 · 10 min · 2065 words · Eric Cheng