mirror of
https://github.com/sweetwisdom/everything-claude-code-zh.git
synced 2026-03-22 06:20:10 +00:00
88 lines
2.1 KiB
Markdown
88 lines
2.1 KiB
Markdown
---
|
||
description: Comprehensive Go code review for idiomatic patterns, concurrency safety, error handling, and security. Invokes the go-reviewer agent.
|
||
---
|
||
|
||
# Go 程式碼審查
|
||
|
||
此指令呼叫 **go-reviewer** Agent 進行全面的 Go 特定程式碼審查。
|
||
|
||
## 此指令的功能
|
||
|
||
1. **識別 Go 變更**:透過 `git diff` 找出修改的 `.go` 檔案
|
||
2. **執行靜態分析**:執行 `go vet`、`staticcheck` 和 `golangci-lint`
|
||
3. **安全性掃描**:檢查 SQL 注入、命令注入、競態條件
|
||
4. **並行審查**:分析 goroutine 安全性、channel 使用、mutex 模式
|
||
5. **慣用 Go 檢查**:驗證程式碼遵循 Go 慣例和最佳實務
|
||
6. **產生報告**:依嚴重性分類問題
|
||
|
||
## 何時使用
|
||
|
||
在以下情況使用 `/go-review`:
|
||
- 撰寫或修改 Go 程式碼後
|
||
- 提交 Go 變更前
|
||
- 審查包含 Go 程式碼的 PR
|
||
- 加入新的 Go 程式碼庫時
|
||
- 學習慣用 Go 模式
|
||
|
||
## 審查類別
|
||
|
||
### 關鍵(必須修復)
|
||
- SQL/命令注入弱點
|
||
- 沒有同步的競態條件
|
||
- Goroutine 洩漏
|
||
- 寫死的憑證
|
||
- 不安全的指標使用
|
||
- 關鍵路徑中忽略錯誤
|
||
|
||
### 高(應該修復)
|
||
- 缺少帶上下文的錯誤包裝
|
||
- 用 Panic 取代 Error 回傳
|
||
- Context 未傳遞
|
||
- 無緩衝 channel 導致死鎖
|
||
- 介面未滿足錯誤
|
||
- 缺少 mutex 保護
|
||
|
||
### 中(考慮)
|
||
- 非慣用程式碼模式
|
||
- 匯出項目缺少 godoc 註解
|
||
- 低效的字串串接
|
||
- Slice 未預分配
|
||
- 未使用表格驅動測試
|
||
|
||
## 執行的自動化檢查
|
||
|
||
```bash
|
||
# 靜態分析
|
||
go vet ./...
|
||
|
||
# 進階檢查(如果已安裝)
|
||
staticcheck ./...
|
||
golangci-lint run
|
||
|
||
# 競態偵測
|
||
go build -race ./...
|
||
|
||
# 安全性弱點
|
||
govulncheck ./...
|
||
```
|
||
|
||
## 批准標準
|
||
|
||
| 狀態 | 條件 |
|
||
|------|------|
|
||
| ✅ 批准 | 沒有關鍵或高優先問題 |
|
||
| ⚠️ 警告 | 只有中優先問題(謹慎合併)|
|
||
| ❌ 阻擋 | 發現關鍵或高優先問題 |
|
||
|
||
## 與其他指令的整合
|
||
|
||
- 先使用 `/go-test` 確保測試通過
|
||
- 如果發生建置錯誤,使用 `/go-build`
|
||
- 提交前使用 `/go-review`
|
||
- 對非 Go 特定問題使用 `/code-review`
|
||
|
||
## 相關
|
||
|
||
- Agent:`agents/go-reviewer.md`
|
||
- 技能:`skills/golang-patterns/`、`skills/golang-testing/`
|