cqs-patterns
在 .NET 中套用 CQS 與 CQRS 模式
團隊經常將狀態變更與資料讀取混在一起,這會讓程式碼更難測試與推理。此技能會指引 .NET 方法、處理常式和控制器採用清晰的 CQS 與 CQRS 設計。
使用我的智慧代理安裝
將此請求複製給你的智慧代理,其中包含權威 Skill 頁面和清單。
Review the Skillstore skill "cqs-patterns" from https://skillstore.io/skills/doubleslashse-cqs-patterns.md and its manifest at https://skillstore.io/api/skills/doubleslashse-cqs-patterns/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.你的智慧代理仍應顯示其計畫,並依安全政策請求必要確認。
Agent 可讀資源
當 AI Agent、爬蟲或腳本需要乾淨脈絡、而不是讀取完整頁面時,請使用這些連結。
測試它
正在使用「cqs-patterns」。 一個堆疊類別有一個會移除並傳回頂端項目的方法。
預期結果:
- 此方法混合了命令與查詢。
- 使用一個操作來檢查頂端項目,並使用另一個分離的操作來移除它。
- 這能讓重複讀取保持安全,並讓狀態變更更明確。
正在使用「cqs-patterns」。 一個訂單功能需要建立、取消、查找和客戶訂單清單操作。
預期結果:
- 建立和取消是命令,因為它們會變更狀態。
- 查找和清單操作是查詢,因為它們會傳回資料且沒有副作用。
- 分離的處理常式讓驗證、持久化和讀取最佳化更容易測試。
正在使用「cqs-patterns」。 正在考慮將一個小型 CRUD 管理頁面改用 CQRS。
預期結果:
- 對於簡單的管理工作流程,CQRS 可能會增加不必要的複雜度。
- 只有在讀取與寫入模型有明顯不同的需求時才使用它。
- 標準服務或控制器可能就已足夠。
安全審計
安全All static findings appear to be false positives caused by Markdown code fences, ASCII diagrams, and C# examples in documentation. I found no prompt injection, data exfiltration intent, executable scripts, network behavior, or real system reconnaissance in SKILL.md.
風險因素
⚙️ 外部命令 (25)
分享與引用此報告
分享版本化評估報告、中性徽章、嵌入卡片與引用。Skillstore 只報告證據,不判斷該 Skill 是否安全。
複製報告連結
https://skillstore.io/skills/doubleslashse-cqs-patterns/audits/9?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_reportMarkdown 徽章
[](https://skillstore.io/skills/doubleslashse-cqs-patterns?utm_source=security_passport_badge)HTML 徽章
<a href="https://skillstore.io/skills/doubleslashse-cqs-patterns?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/doubleslashse-cqs-patterns/security.svg" alt="Skillstore security assessment" loading="lazy"></a>嵌入卡片
<iframe src="https://skillstore.io/embed/skills/doubleslashse-cqs-patterns.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>學術引用 (APA · BibTeX · CFF)
APA 引用
DoubleslashSE. (2026). cqs-patterns security audit report (audit version 9) [Author version unspecified]. Skillstore. https://skillstore.io/skills/doubleslashse-cqs-patterns/audits/9BibTeX 引用
@techreport{doubleslashse-doubleslashse-cqs-patterns-2026,
author = {DoubleslashSE},
title = {cqs-patterns security audit report (audit version 9)},
institution = {Skillstore},
year = {2026},
number = {9},
url = {https://skillstore.io/skills/doubleslashse-cqs-patterns/audits/9},
note = {Author version unspecified}
}CITATION.cff
cff-version: 1.2.0
message: "If you use this Skill, cite its author and this versioned security audit report."
title: "cqs-patterns security audit report (audit version 9)"
version: "unspecified"
type: report
authors:
- name: "DoubleslashSE"
date-released: "2026-07-06"
url: "https://skillstore.io/skills/doubleslashse-cqs-patterns/audits/9"
identifiers:
- type: other
value: "skillstore:doubleslashse-cqs-patterns:audit:9"
description: "Skillstore immutable audit report identifier"
Skillstore 評分
評分依據 證據置信度: 高你可以打造什麼
分離服務方法
檢視同時修改狀態並傳回領域資料的服務方法,然後將它們拆分為更清楚的命令與查詢。
設計 CQRS 處理常式
為 .NET 應用程式層建立命令與查詢記錄,並搭配對應的處理常式。
檢視架構複雜度
判斷某個功能是否需要 CQRS,或較簡單的 CRUD 模式是否更合適。
試試這些提示
檢視這個 .NET 類別是否有 CQS 違規情況。找出同時變更狀態並傳回資料的方法,然後建議更簡單的名稱與職責。
將這個服務 API 重構為分離的命令與查詢操作。保持行為等效,並說明每個新職責。
為這個功能設計 CQRS 應用程式層。包含命令記錄、查詢記錄、處理常式職責和控制器流程。
評估 CQRS 是否適合這個系統。比較效益、增加的複雜度、測試影響、讀取模型需求和替代方案。
最佳實務
- 使用祈使動詞命名命令,並使用偏向讀取的名稱命名查詢。
- 讓查詢不含副作用,確保它們可以安全重複執行。
- 當讀取與寫入路徑具有不同模型、規模或規則時,使用 CQRS。
避免
- 從同時持久化變更的方法傳回完整領域物件。
- 在沒有明確需求的簡單 CRUD 畫面中加入 CQRS。
- 將狀態變更隱藏在 getter、計算屬性或查詢處理常式中。
常見問題
這項技能解決什麼問題?
它會產生可直接用於生產環境的程式碼嗎?
CQS 和 CQRS 是一樣的嗎?
我什麼時候應該避免使用 CQRS?
命令可以傳回識別碼嗎?
哪些工具可以使用這項技能?
開發者詳細資訊
授權
MIT
Skillstore 修訂
r1
版本提示
作者未聲明版本。
儲存庫
https://github.com/DoubleslashSE/claude-workflows/tree/main/Plugins/dotnet-tdd/skills/cqs-patterns引用
72d5025b022c77f7a51bdf5c1637c689c80e89d1
維護新鮮度
2026/7/22
使用量
5 次下載 · 194 次瀏覽
檔案結構
📄 SKILL.md