claude-code/claude-zh/skills/springboot-verification/SKILL.md

64 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: springboot-verification
description: "Spring Boot 專案的驗證循環:包含構建、靜態分析、測試與覆蓋率檢查、安全性掃描,以及在發布或提交 PR 前的 Diff 審查。"
---
# Spring Boot 驗證循環 (Verification Loop)
在提交 PR、重大變更後或正式佈署前執行。
## 何時啟用
- 在開啟 Spring Boot 服務的 Pull Request 之前。
- 在發生重大重構或依賴項升級之後。
- 在佈署至預覽 (Staging) 或生產環境 (Production) 之前的最後確認。
- 執行包含「編譯 → Lint → 測試 → 弱點掃描」的完整流水線。
## 驗證階段
### 階段 1專案編譯 (Build)
使用 Maven 或 Gradle 進行項目編譯,確保語法無誤且依賴解析正常。
### 階段 2靜態程式碼分析 (Static Analysis)
運行 Checkstyle, SpotBugs 或 PMD 插件,檢查潛在的 Code Smell 或是違反編碼規範的地方。
### 階段 3測試與覆蓋率 (Tests + Coverage)
- **執行全量測試**:驗證邏輯正確性。
- **檢查 JaCoCo 報告**:確保整體覆蓋率達到指標 (建議 80%+)。
- **子項驗證**
- **單元測試**:隔離依賴項,驗證 Service 邏輯。
- **整合測試**:使用 **Testcontainers** 啟動真實資料庫進行驗證。
- **API 測試**:使用 **MockMvc** 驗證 Controller 層的輸入輸出與 HTTP 語義。
### 階段 4安全性掃描 (Security Scan)
- **依賴項弱點**:檢查第三方 Library 是否存在已知 CVE。
- **秘密資訊檢查**:使用 Grep 或工具檢查原始碼中是否誤傳了密碼、金鑰或 Secrets。
- **掃描敏感模式**:檢查是否存在 `System.out.println`、CORS 萬用字元 (*) 或不安全的例外訊息曝露。
### 階段 5代碼 Diff 審查
在提交前最後檢視變更內容:
- 是否殘留調試用 Logger
- 錯誤訊息是否一致且 HTTP 狀態碼正確?
- 交易 (Transactions) 與驗證是否已正確實作?
## 驗證報告模板
```
Spring Boot 驗證報告
===================
編譯狀態: [通過/失敗]
靜態分析: [通過/失敗] (Checkstyle/SpotBugs)
測試執行: [通過/失敗] (X 通過 / Y 總數, 覆蓋率 Z%)
安全性掃描: [通過/失敗] (發現 N 個弱點)
變更範圍: [X 個檔案變更]
綜合評定: [READY / NOT READY]
待修正事項:
1. ...
```
---
**核心原則**:越早回饋,修復成本越低。保持嚴格的驗證標準,將警告 (Warnings) 視為軟體缺陷進行修補。