P/
PromptTools
選單
資產庫
指令組合
產生指令包
管理資料
Instruction asset
編輯一般指令
共用內容只保存一份;工具差異放在專用補充,下載時才組合。
基本資料
01
名稱
唯一代稱
小寫英文、數字與連字號;建立後仍可修改但不可重複。
簡短說明
主要分類
未分類
預設排序
標籤
尚無標籤,可先到「分類與標籤」建立。
共用 Markdown 與即時預覽
02
共用指令內容
--- applyTo: '**/*' --- # 程式碼審查 (Code Review) 指南 當我要求你審查一段程式碼時,請扮演一位資深的 .NET 開發者,並根據以下核心原則進行檢查。 ## 1. 專案架構遵循度 - **三層式架構**: - 程式碼是否遵循 `UI -> BLL -> DAL` 的呼叫順序? - **BLL 是否正確地實例化 (instantiate) DAL 物件?** (例如 `DboUser _DboUser = new DboUser(Utility.SybaseConnectionString);`) - **DAL 是否正確地繼承自 `DbHelperSQL`?** - **DAL 回傳型別**: - **DTO 映射模式 (主流)**:DAL 回傳 `IEnumerable<DtoXxx>`,使用 `yield return` + `DTO.GetSingleData(DataRow)` 完成映射? - **DataSet 直通模式 (基礎設施)**:DAL 回傳 `DataSet`,BLL 自行遍歷 `DataRow` 做映射? - DAL 是否錯誤回傳 `List<Dto>`?(應使用 `IEnumerable<T>` + `yield return`,`List<T>` 由 BLL `.ToList()` 負責) - **BLL 處理方式**: - 接收 `IEnumerable<T>` 時,是否使用 `.ToList()` 具現化? - 接收 `DataSet` 時,是否正確檢查 `dsData != null && dsData.Tables.Count > 0`? - **`App_Code` 規範**: 是否錯誤地在 `.cs` 檔案中加入了 `namespace` 宣告? ## 2. 共用函式庫使用 - **優先使用 CHMC.dll**: 程式碼中是否有手動實作「日誌記錄」、「加解密」、「讀取 Config」等功能?若有,請提醒開發者**必須**優先使用 `CHMC.dll` 中已有的方法。 ## 3. DAL 層開發品質 - **`DbHelperSQL` 模式**: - 是否正確使用了 `base.FillDataSet()`, `base.ExecuteNonQuery()` 等方法? - `FillDataSet` 是否傳入完整 4 個參數 (sql, CommandType, parameters, tableName)? - `ExecuteNonQuery` 是否傳入完整 3 個參數 (sql, CommandType, parameters)? - 是否錯誤地在方法內部手動使用了 `using (SqlConnection...)`? - **回傳型別檢查**: - 一般業務查詢是否使用 `IEnumerable<DtoXxx>` + `yield return` + `DTO.GetSingleData(DataRow)` 模式? - 使用 `yield return` 的方法是否錯誤地包覆了 `try-catch`?(`yield return` 不允許出現在 try-catch 區塊中) - 系統基礎設施查詢 (權限、員工) 是否使用 `DataSet` 直通模式? - 是否在 DAL 層內部手動建立 `List<Dto>` 並回傳?(應使用 `yield return`) - **Sybase 編碼轉換**: - SELECT 查詢後是否呼叫 `Utility.CP850TransUnicode(dsReturn, TableName)` 轉換中文? - INSERT/UPDATE 含中文欄位時是否使用 `StringHelper.UnicodeTransCP850()` 轉換? - **參數化查詢**: 所有 SQL 查詢是否 100% 使用了 `AseParameter` / `SqlParameter` 進行參數化? ## 4. 安全性檢查 (Security Checks) - **跨網站指令碼 (XSS)**: 檢查是否有將未經處理的使用者輸入 (`Request.Form`, `Request.QueryString`) 直接輸出到前端。若有,提醒**必須**使用 `HttpUtility.HtmlEncode()`。 - **SQL 注入**: 再次確認所有資料庫查詢都是參數化的。 - **硬編碼機敏資訊**: 檢查程式碼中是否包含寫死的連線字串或密碼。 ## 5. 資料庫規範遵循度 (Database Standards) - **Table 命名**: - 是否符合 `{系統別}_{tablename}_m` 格式? - 表名是否僅使用**小寫**英文字母、數字與底線? - 表名長度是否**不超過 30 字元**? - Log 檔是否以 `_l` 結尾?歷史檔是否以 `_h` 結尾? - **欄位設計**: - 欄位名稱長度是否在 30 字元以內,且僅使用英數字與 `_`? - 是否使用了 SQL **保留字**作為欄位名稱(如 `EXEC`, `AS`, `ASC`, `FIRST`,完整清單參考附錄 B)? - 相關聯欄位是否使用統一名稱? - Table 是否有欄位紀錄**資料寫入日期時間**及**人員 ID**? - 欄位註解是否註明關聯的 `Table.欄位名` 或詳細代碼名稱? - **主鍵規範**: - 每張表是否都有建立主鍵? - 是否使用最小資料型態作為主鍵? - **索引設計**: - 唯一性欄位是否已建立索引? - PK / Index 或需查詢使用的資料是否為 **NOT NULL**? - **SQL 查詢設計**: - 有 `JOIN` 時,是否使用二段式命名(`別名.欄位名`)且指明欄位所屬表? - `WHERE` 條件是否將索引欄位值擺前頭? - 是否在索引欄位上使用了函式做查詢條件? - 是否在 `LIKE` 條件前使用了前置萬用字元(如 `LIKE '%keyword'`)? 請將你的審查結果以條列式的方式呈現,並區分為「**必須修正 (Critical)**」和「**建議優化 (Suggestion)**」。
格式化預覽
工具與套用範圍
03
適用工具
GitHub Copilot
Codex
Claude Code
Cursor
Antigravity
套用範圍
整個專案
指定路徑
指定路徑模式
每行一筆。當次下載仍可覆寫,不會修改此正式設定。
工具專用補充
04
只填差異,不要複製整份共用內容。
GitHub Copilot
Codex
Claude Code
Cursor
Antigravity
修改說明
選填;會保存在這次建立的新版本中。
保存並建立新版本
取消