cover

接續 Code Review 方法論。你知道怎麼 review 和被 review 了,但如果團隊之前完全沒做過呢?

先講結論

一次到位會讓團隊反感。漸進式導入,讓大家先感受到好處,再加規範。

Code Review 在 CI/CD 的定位

重點是:人類 review 放在 CI 自動檢查之後。

Lint error、format issue、test failure 應該在 CI 就被擋掉。Reviewer 不該花時間告訴你「少一個分號」——那是機器的工作。

自動化負責人類負責
Lint / Format / Type check架構設計合理性
Unit test / Integration test商業邏輯正確性
Security scanning更好的設計方案
Coverage threshold知識分享與教學

CI 過了才開 review,reviewer 拿到的至少是「能跑的 code」。

建議的 GitHub Branch Protection:

  • Require 1 approval before merge
  • Require CI status checks pass
  • Require branches to be up to date
  • Dismiss stale reviews when new commits pushed

四階段導入法

Phase 1:建立基礎(第 1-2 週)

開始用 PR,不要直接 push to main。PR 至少要有 description(What / Why / How)。設定 CI:lint + test 過才能 merge。先不強制 review,讓大家習慣流程。

Phase 2:開始 Review(第 3-4 週)

要求至少 1 個 approve。導入 comment 前綴系統([must] / [nit] / [question] / [nice])。設定 review SLA:24 小時內要有第一次 review。鼓勵 [nice] comment——review 不只是挑毛病。

Phase 3:優化流程(第 5-8 週)

PR < 400 行規範。設定 PR template 自動帶出 What / Why / How / Test。Review rotation——不要永遠同一個人 review。定期回顧速度、品質、大家的感受。

Phase 4:進階實踐(第 9 週後)

Pair programming 搭配 Code Review。ADR(Architecture Decision Records)。自動化更多檢查。追蹤 review 數據。

常見阻力怎麼處理

你一定會遇到這些:

「我沒時間 review」——Review 就是工作,不是額外的事。把 review 時間排進 sprint。

「Review 太慢影響進度」——設定 SLA。PR 太大就拆小。24 小時內必須第一次 review。

「被 review 很不舒服」——培訓 reviewer 怎麼寫好 comment,先從 [nice] 開始。一個只會挑毛病的 reviewer 會摧毀整個文化。

「PR 放很久沒人看」——Bot 提醒、Slack 通知、standup 追蹤。

「Senior 都不認真 review」——Lead 以身作則。Review 品質也是績效考核的一部分。

Review SLA 建議

PR 類型首次 Review完成 Review
Hotfix2 小時4 小時
一般 Feature24 小時48 小時
Refactoring48 小時一週

延伸閱讀


Code Review 做得好,整個團隊的品質和文化都往上。做得不好,浪費時間還傷感情。終極目標不是抓 bug,是讓每個人都寫出更好的 code——這是學習的過程,不是考試。