Communitygithub.com

axewhyzed/agentic-skills

全面的軟體工程標準與系統設計作業框架,涵蓋簡潔程式碼、底層設計、高層架構、分散式系統、API 合約、資料庫索引、容量規劃與架構決策記錄。

agentic-skills 是什麼?

此技能提供一個嚴謹且經過實戰驗證的作業框架,專注於提升軟體工程品質、系統架構、低階設計與分散式系統。它匯集了核心運作原則(如權衡取捨、可逆性優先、證據導向設計)及六步驟的高層設計工作流程,並涵蓋 SOLID 原則、模組封裝、API 與資料持久化標準、效能與容量工程,以及架構決策記錄。設計目的是讓 AI 代理(如 Claude Code)在設計、評估、重構或擴展軟體架構時,能提供結構化、高品質的建議。此技能支援標準的 Markdown 格式,並可連結至參考文件的子目錄,適用於後端服務、資料庫、API 與效能關鍵系統。

相容平台~Claude Code~Codex CLI✓Cursor✓Antigravity
npx skills add https://github.com/axewhyzed/agentic-skills/tree/HEAD/.agents/skills/software-engineering-and-system-design

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

軟體工程與系統設計標準

一套嚴謹且經過實戰驗證的作業指南,涵蓋軟體工程卓越、系統架構、低階設計與分散式系統。


1. 核心運作原則

  1. 權衡取捨勝於教條:沒有通用的「最佳實務」,只有權衡取捨。每個架構選擇都會以特定成本(延遲、一致性、營運複雜度或認知負擔)換取一組效益。務必說明正在犧牲什麼。
  2. 可逆性優先:優先考慮雙向門決策(可逆),而非單向門決策(不可逆)。避免過早與特定供應商、框架或分散式拓撲耦合。
  3. 杜絕架構太空理論:每個抽象化、介面與層級都必須根據具體的現有需求來證明其重量,而不是基於推測的未來需求(YAGNI)。
  4. 證據導向設計:根據具體的分析數據、測量結果、查詢計畫(EXPLAIN ANALYZE)與容量限制來制定決策,而非依賴假設。
  5. 快速失敗與明確邊界:子系統、領域或網路躍點之間的邊界必須具有明確、強型別的合約、驗證、逾時、斷路器與冪等性保證。

2. 高階設計 (HLD) 與架構工作流程

當被要求設計系統、評估架構或重構主要子系統時,執行此六步驟框架:

flowchart TD
    Step1["1. 釐清需求與範圍<br>(功能性、非功能性、延遲、可用性、一致性)"]
    Step2["2. 容量與規模估算<br>(DAU、QPS、吞吐量、網路頻寬、儲存空間、快取 RAM)"]
    Step3["3. 高階架構 (C4 L1/L2)<br>(服務邊界、儲存選擇、入口、快取)"]
    Step4["4. 資料模型與介面合約<br>(實體、綱要、主鍵、索引、REST/gRPC API)"]
    Step5["5. 深度分析與瓶頸隔離<br>(複寫、分片、並行性、快取病理、熱點)"]
    Step6["6. 韌性與 SRE 策略<br>(SLO、斷路器、含抖動的重試、冪等性、DLQ)"]

    Step1 --> Step2 --> Step3 --> Step4 --> Step5 --> Step6

詳細 HLD 參考

關於分散式系統定理(CAP、PACELC)、一致性層級、共識(Raft/Paxos)、分片、複寫、Saga 模式與交易型外寄信箱模式,請參閱: 👉 高階系統設計與分散式系統參考


3. 低階設計 (LLD) 與簡潔程式碼標準

在撰寫、審查或重構程式碼時,應遵守以下標準:

3.1 SOLID 規則

  • SRP(單一職責):一個模組只有一個角色/利害關係人需要回應。將持久化、HTTP 序列化與業務邏輯提取到不同的關注點。
  • OCP(開放/封閉):優先使用多型、策略模式或訪客模式,而非使用龐大的 switch / if-else 型別分發陳述式。
  • LSP(里氏替換):子型別必須滿足父型別的所有行為不變量。覆寫方法使其拋出 NotImplementedException 違反了 LSP。
  • ISP(介面隔離):偏好小型的、針對特定用戶端的角色介面,而非大型的「上帝介面」。
  • DIP(依賴反轉):核心業務規則僅依賴抽象(連接埠),絕不直接依賴外部資料庫函式庫、UI 框架或網路驅動程式。

3.2 模組封裝(Parnas 與 Connascence)

  • 模組秘密:模組必須完全隱藏其主要秘密(內部演算法/資料結構)與次要秘密(外部環境/檔案格式)。
  • Connascence:最小化動態 connascence(執行順序、時機、值約束),並減少耦合至靜態名稱/型別協議。

詳細 LLD 參考

關於四人幫 (GoF) 設計模式實戰指南、領域驅動設計 (DDD) 戰術建構區塊(實體、值物件、聚合、領域事件)以及重構技巧,請參閱: 👉 低階設計與簡潔程式碼參考


4. API 與資料持久化標準

  1. RESTful API:
    • 嚴格遵守 HTTP 方法語意(GET 是安全且冪等的;PUT/DELETE 是冪等的;POST 用於建立)。
    • 使用 RFC 7807(問題詳情) 來處理結構化錯誤回應。
    • 對於大量資料集合,優先使用 索引鍵/游標分頁 而非偏移量/限制分頁。
  2. 資料庫索引(E-R-S 規則):
    • 複合索引欄位順序:[等值欄位] $\to$ [範圍欄位] $\to$ [排序欄位]。
    • 使用涵蓋索引(僅索引掃描)和部分索引,以消除熱門查詢的磁碟頁面查詢。
    • 務必使用 EXPLAIN QUERY PLAN 或 EXPLAIN ANALYZE 驗證查詢。
  3. 非同步訊息與事件:
    • 結合至少一次代理傳遞與消費者端冪等性(在儲存中對唯一訊息 ID 進行重複資料刪除),以保證有效一次處理。
    • 將無法處理的毒藥訊息路由至死信佇列 (DLQ),以防止分割區停滯。

詳細 API 與資料參考

👉 API 設計與資料持久化標準


5. 效能、容量與可靠性工程

  1. 粗略估算:
    • $1\text{ 天} \approx 10^5\text{ 秒}$($86,400\text{ 秒}$)。$1\text{M 請求/天} \approx 12\text{ RPS}$。
    • 尖峰 QPS = 平均 QPS $\times$ $3\times$。
    • 快取 RAM = $20% \times (\text{每日讀取量} \times \text{項目大小})$(帕雷托 80/20 法則)。
    • Little's Law:$L = \lambda W$(進行中的並行性 = 到達率 $\times$ 延遲)。
  2. 快取紀律:
    • 切勿設定任意、未經測量的記憶體中 TTL,導致其在正常運作期間過期。
    • 根據資料版本/指紋或工作階段時間戳記進行失效。
    • 防範快取雪崩(使用互斥鎖/分散式鎖)、快取穿透(布隆過濾器)和快取崩潰(TTL 抖動)。
  3. 網站可靠性工程 (SRE):
    • 執行明確的 SLO 與延遲預算($p50$、$p95$、$p99$)。
    • 實作斷路器、隔艙模式以及具有完整抖動的指數退避。

詳細可靠性與效能參考

👉 可靠性、效能與容量工程參考


6. 架構決策記錄 (ADR)

使用標準 ADR 格式記錄非平凡技術選擇:

  • 背景與驅動因素:問題、營運限制以及延遲/規模目標。
  • 考慮過的選項:結構性替代方案及其權衡取捨。
  • 決策與結果:與決策驅動因素相關的具體論證。
  • 後果:明確的正面效益與所接受的負面成本。

詳細 ADR 參考與範本

👉 架構決策記錄與 C4 模型參考

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

axewhyzed/agentic-skills

>- Comprehensive guide and operational framework for native Android and mobile UI/UX engineering. Use when designing, auditing, building, or refactoring Android applications (Jetpack Compose, Material 3), mobile ergonomics, offline-first outbox patterns, stale-while-revalidate caching, smart one-tap intent actions, storage framework integrations, tactile haptics, shared element transitions, predictive back gestures, and seamless mobile authentication.

axewhyzed/agentic-skills

>- Operational framework for high-density, zero-waste modern web applications, tool dashboards, and productive workspaces. Use when designing, building, or refactoring web interfaces (React, TypeScript), two-pane master-detail layouts, unified compose hubs, keyboard-driven navigation, command palettes (cmdk), live telemetry indicators, and granular authentication ergonomics.

axewhyzed/agentic-skills

>- Comprehensive guide and operational framework for engineering world-class, human-grade GitHub READMEs and technical repository documentation. Use whenever creating, auditing, or refactoring a README for open-source tools, self-hosted services, developer utilities, or client-server applications. Enforces clear documentation guidelines, the 30-second rule, dual-audience narrative balance, copy-pasteable quickstarts, and high-signal visual showcases.

axewhyzed/agentic-skills

>- Comprehensive operational framework and design intelligence for modern UI/UX design, design systems, visual hierarchy, design tokens, component architecture, high-density financial terminal aesthetics, accessibility (WCAG 2.2 AAA/AA), mobile ergonomics, data visualization, and complete interface revamps. Use this skill whenever auditing, designing, refactoring, building, or restyling user interfaces, dashboards, design systems, layouts, forms, data tables, animations, and micro-interactions.

相關技能