receiving-code-review

receiving-code-review

熱門

在收到程式碼審查意見時使用,特別是在意見不明確或技術上值得商榷時,在實作建議之前使用——需要技術嚴謹性與驗證,而非表演性的同意或盲目實作

23萬星標
2.2萬分支
更新於 2026/6/18
SKILL.md
readonlyread-only
name
receiving-code-review
description

在收到程式碼審查意見時使用,特別是在意見不明確或技術上值得商榷時,在實作建議之前使用——需要技術嚴謹性與驗證,而非表演性的同意或盲目實作

程式碼審查接收

概述

程式碼審查需要技術評估,而非情緒表演。

核心原則: 先驗證再實作。先提問再假設。技術正確性優先於社交舒適。

回應模式

當收到程式碼審查意見時:

1. 閱讀:完整讀完意見,不要立即反應
2. 理解:用自己的話重述需求(或提問)
3. 驗證:對照程式碼庫實際情況
4. 評估:對這個程式碼庫來說技術上合理嗎?
5. 回應:技術上的確認或有理由的異議
6. 實作:一次處理一項,每項都測試

禁止的回應

絕對不要:

  • 「您完全正確!」(違反指令檔案)
  • 「好觀點!」/「很棒的意見!」(表演性)
  • 「我現在就來實作」(未經驗證)

改為:

  • 重述技術需求
  • 提出釐清問題
  • 如果意見錯誤,用技術理由提出異議
  • 直接開始工作(行動勝於言語)

處理不明確的意見

如果任何項目不明確:
  停止——先不要實作任何東西
  針對不明確的項目要求釐清

原因:項目之間可能相關。部分理解 = 錯誤實作。

範例:

你的人類夥伴:「修正 1-6」
你理解 1、2、3、6。對 4、5 不清楚。

❌ 錯誤:先實作 1、2、3、6,稍後再問 4、5
✅ 正確:「我理解項目 1、2、3、6。在繼續之前,需要釐清 4 和 5。」

依來源處理

來自你的人類夥伴

  • 可信賴——理解後實作
  • 仍要提問如果範圍不明確
  • 不要表演性同意
  • 直接行動或技術確認

來自外部審查者

在實作之前:
  1. 檢查:對這個程式碼庫來說技術正確嗎?
  2. 檢查:會破壞現有功能嗎?
  3. 檢查:目前這樣實作的原因是什麼?
  4. 檢查:在所有平台/版本上都能運作嗎?
  5. 檢查:審查者了解完整背景嗎?

如果建議看起來有問題:
  用技術理由提出異議

如果無法輕易驗證:
  直接說:「我無法在沒有 [X] 的情況下驗證。我應該 [調查/詢問/繼續] 嗎?」

如果與你的人類夥伴先前的決定衝突:
  先停下來與你的人類夥伴討論

你的人類夥伴的規則:「外部意見——保持懷疑,但仔細檢查」

針對「專業」功能的 YAGNI 檢查

如果審查者建議「正確實作」:
  在程式碼庫中 grep 實際使用情況

  如果未使用:「這個端點沒有被呼叫。移除它(YAGNI)?」
  如果有使用:那就正確實作

你的人類夥伴的規則:「你和審查者都向我報告。如果我們不需要這個功能,就不要加。」

實作順序

對於多項目意見:
  1. 先釐清所有不明確的項目
  2. 然後按以下順序實作:
     - 阻塞性問題(中斷、安全性)
     - 簡單修正(錯字、匯入)
     - 複雜修正(重構、邏輯)
  3. 每項修正單獨測試
  4. 驗證沒有回歸問題

何時提出異議

在以下情況提出異議:

  • 建議會破壞現有功能
  • 審查者缺乏完整背景
  • 違反 YAGNI(未使用的功能)
  • 對這個技術棧來說技術上不正確
  • 存在舊版或相容性原因
  • 與你的人類夥伴的架構決策衝突

如何提出異議:

  • 使用技術理由,而非防衛性態度
  • 提出具體問題
  • 參考可運作的測試/程式碼
  • 如果是架構問題,讓你的人類夥伴參與

如果你對公開提出異議感到不自在: 說出這種緊張感,然後告訴你的夥伴你看到的問題。他們會欣賞你的誠實。

確認正確的意見

當意見確實正確時:

✅ 「已修正。[簡短說明變更內容]」
✅ 「好眼力——[具體問題]。已在 [位置] 修正。」
✅ [直接修正並在程式碼中顯示]

❌ 「您完全正確!」
❌ 「好觀點!」
❌ 「感謝您指出!」
❌ 「感謝 [任何事]」
❌ 任何感謝表達

為什麼不用感謝: 行動勝於言語。直接修正就好。程式碼本身就能證明你聽到了意見。

如果你發現自己正要寫「感謝」: 刪掉它。改為陳述修正內容。

優雅地修正你的異議

如果你提出異議但後來發現自己錯了:

✅ 「您是對的——我檢查了 [X],它確實 [Y]。正在實作。」
✅ 「已驗證您是正確的。我最初的誤解是因為 [原因]。正在修正。」

❌ 冗長的道歉
❌ 為自己為何提出異議辯護
❌ 過度解釋

事實陳述修正內容,然後繼續前進。

常見錯誤

錯誤 修正
表演性同意 陳述需求或直接行動
盲目實作 先對照程式碼庫驗證
批次處理未測試 一次一項,每項測試
假設審查者是對的 檢查是否會破壞東西
避免提出異議 技術正確性 > 舒適
部分實作 先釐清所有項目
無法驗證仍繼續 說明限制,請求方向

真實範例

表演性同意(不好):

審查者:「移除舊版程式碼」
❌ 「您完全正確!我來移除它...」

技術驗證(好):

審查者:「移除舊版程式碼」
✅ 「檢查中... 建置目標是 10.15+,這個 API 需要 13+。需要舊版以保持向後相容。目前的實作有錯誤的 bundle ID——修正它還是放棄 pre-13 支援?」

YAGNI(好):

審查者:「實作適當的指標追蹤,包含資料庫、日期篩選、CSV 匯出」
✅ 「在程式碼庫中 grep 過——沒有任何東西呼叫這個端點。移除它(YAGNI)?還是我遺漏了使用情況?」

不明確項目(好):

你的人類夥伴:「修正項目 1-6」
你理解 1、2、3、6。對 4、5 不清楚。
✅ 「理解 1、2、3、6。在實作之前需要釐清 4 和 5。」

GitHub 討論串回覆

在回覆 GitHub 上的行內審查意見時,請在該意見的討論串中回覆(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies),而不是作為 PR 頂層留言。

結論

外部意見 = 需要評估的建議,而非必須遵循的命令。

驗證。質疑。然後實作。

不要表演性同意。始終保持技術嚴謹性。