Files
gh-wasabeef-claude-code-coo…/commands/pr-review.md
2025-11-30 09:05:49 +08:00

3.6 KiB
Raw Blame History

PR 審查

通過 Pull Request 的系統化審查確保代碼質量和架構健全性。

使用方法

# PR 的全面審查
gh pr view 123 --comments
"系統化審查這個 PR從代碼質量、安全性、架構角度提供反饋"

# 安全性專注審查
gh pr diff 123
"專注于安全風險和漏洞進行審查"

# 架構視角的審查
gh pr checkout 123 && find . -name "*.js" | head -10
"從層級分離、依賴關系、SOLID 原則的角度評估架構"

基本示例

# 代碼質量的數值評估
find . -name "*.js" -exec wc -l {} + | sort -rn | head -5
"評估代碼的復杂度、函數大小、重復度並指出改進點"

# 安全漏洞檢查
grep -r "password\|secret\|token" . --include="*.js" | head -10
"檢查敏感資訊洩露、硬編碼、認證绕過的風險"

# 架構违規檢測
grep -r "import.*from.*\\.\\./\\.\\." . --include="*.js"
"評估層級违規、循環依賴、耦合度問題"

評論分類體系

🔴 critical.must: 致命問題
├─ 安全漏洞
├─ 數據一致性問題
└─ 系統故障風險

🟡 high.imo: 高優先級改進
├─ 功能故障風險
├─ 性能問題
└─ 可維護性大幅降低

🟢 medium.imo: 中優先級改進
├─ 可讀性提升
├─ 代碼結構改進
└─ 測試質量提升

🟢 low.nits: 轻微指摘
├─ 風格統一
├─ 拼寫錯誤更正
└─ 注釋添加

🔵 info.q: 問題·資訊提供
├─ 實現意圖確認
├─ 設計決策背景
└─ 最佳實践分享

審查觀點

1. 代碼正確性

  • 邏輯錯誤: 邊界值、Null 檢查、異常處理
  • 數據一致性: 類型安全、驗證
  • 錯誤處理: 全面性、適当處理

2. 安全性

  • 認證·授權: 適当檢查、權限管理
  • 輸入驗證: SQL 注入、XSS 對策
  • 敏感資訊: 禁止日誌輸出、加密

3. 性能

  • 算法: 時間復杂度、內存效率
  • 數據庫: N+1 查询、索引優化
  • 資源: 內存洩漏、緩存利用

4. 架構

  • 層級分離: 依賴方向、適当分離
  • 耦合度: 松耦合、接口使用
  • SOLID 原則: 單一职責、開闭原則、依賴倒置

審查流程

  1. 事前確認: PR 資訊、變更差異、相關 Issue
  2. 系統化檢查: 安全性 → 正確性 → 性能 → 架構
  3. 建設性反饋: 具體改進建議和代碼示例
  4. 後續跟進: 更正確認、CI 狀態、最終批準

有效的評論示例

安全問題模板

格式:

**critical.must.** [問題描述]

[改進建議代碼]

[説明文字]

示例:

**critical.must.** 密碼以明文保存

// 更正建議
const bcrypt = require('bcrypt');
const hashedPassword = await bcrypt.hash(password, 12);

為防止安全風險,必须進行哈希處理。

性能改進模板

格式:

**high.imo.** [性能問題描述]

[改進建議代碼]

[效果說明]

示例:

**high.imo.** 會發生 N+1 查询問題

// 改進建議: Eager Loading
const users = await User.findAll({ include: [Post] });

可以大幅减少查询數量。

架構违規模板

格式:

**high.must.** [架構問題描述]

[具體說明和解決方案]

示例:

**high.must.** 發生了層級违規

領域層直接依賴基礎設施層。
請通過依賴倒置原則引入接口。

注意事項

  • 建設性語气: 協作而非攻擊性的沟通
  • 具體建議: 不仅指出問題,還要提供解決方案
  • 優先級排序: 按 Critical → High → Medium → Low 顺序處理
  • 持續改進: 將審查結果知識庫化