軟體架構設計指引範本
軟體架構設計指引範本 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 部署架構 環境規劃 開發環境: ...