4.5 Code Review 在 AI 時代的演變#
什麼是 Code Review#
Code Review(程式碼審查) 是指:在程式碼合併到主線之前,由另一位或多位工程師仔細檢視程式碼,找出問題、提供建議。
它不是「找麻煩」或「挑毛病」,而是一個協作與品質保證的過程。它建立在 4.3 節的分支與 Pull Request 之上:開發者把程式碼放上分支、發起 Pull Request(PR),審查者逐筆檢視並提出意見,雙方討論修改,直到通過後再合併。
flowchart LR
A[開發者:完成實作<br/>開 branch 並 commit] --> B[發起 Pull Request]
B --> C[審查者:逐筆 Code Review<br/>檢查邏輯 / 風格 / 安全]
C --> D{通過?}
D -- 否,提出修改意見 --> E[開發者修正<br/>追加 commit] --> C
D -- 是 --> F[通過審查<br/>合併到主線]為什麼需要 Code Review#
傳統上,Code Review 的好處很多:及早抓 bug 與設計問題、知識分享、維持一致性、建立集體責任、降低合併風險。這些好處在 AI 時代全部保留,甚至被放大。
AI 時代的 Code Review:雙重演變#
AI 讓 Code Review 的性質發生雙重演變——既是「對象」變了,也是「工具」變了。
演變一:審查的對象更多是 AI 的輸出#
當程式碼大量由 AI 生成(4.4 節)時,Code Review 的首要對象就是 AI 的輸出了。審查者特別要留意:
- 幻覺(Hallucination):AI 是否用了不存在的 API、編造了邏輯?
- 品質:是否符合團隊的設計原則與風格(AI 常會過度設計,見 3.4 節)?
- 規格遵循:是否偏離 Spec 與介面契約(2.6 節)?
- 安全性:AI 是否引入了漏洞(見第 13 章)?
- 上下文影響:是否誤解了既有程式碼或業務情境?
重點:因為 AI 可以「以極快速度產出大量程式碼」,審查者也正面臨「待審查的程式碼數量暴增」的壓力。於是第二個演變應運而生。
演變二:AI 成為審查的助手(AI Code Reviewer)#
AI 可以被用來輔助(甚至主要)審查程式碼。它擅長:
- 快速發現常見的錯誤模式、安全漏洞、邏輯漏洞
- 檢查是否符合風格規範
- 提出可讀性與設計改善建議
- 處理「海量程式碼」的初篩——先自動濾掉低風險問題,把人留給高風險判斷
但 AI 審查也有盲點:不了解業務情境與架構全局、可能有誤報或漏報、無法承擔最終責任。因此 AI 審查是「好的第一道自動化檢查」,但仍需人來做最終裁決。
人機分工:AI 初篩、人類裁決#
AI 時代最有效的 Code Review 分工是:
flowchart LR
PR[Pull Request<br/>可能含大量 AI 生成程式碼] --> AI[AI Reviewer<br/>自動初步審查<br/>安全 / 風格 / 常見錯誤]
AI -->|標記出候選問題| HUM[人類審查者<br/>聚焦高風險判斷<br/>業務邏輯 / 架構 / 設計取捨]
HUM -->|最終裁決| MERGE[合併]AI 負責「廣」(快速掃描、機械性檢查、抓常見問題、給建議),人負責「深」(業務判斷、架構取捨、安全把關、最終責任)。這正是「機器顧機械性,人顧判斷力」的分工(5、12 章會再深化)。
如何做好 AI 時代的 Code Review:務實建議#
給人類審查者(面對 AI 輸出)#
- 別因為「AI 寫的就不細看」:AI 輸出恰恰更需要批判式審查(4.4 節)
- 驗證而非相信:對「AI 說沒問題」保持懷疑,重點看測試與實際執行結果
- 聚焦高風險:把精力放在邏輯、安全、邊界條件(2.4 節)、架構一致性這類「需要判斷力」的地方
- 引導 AI 修正:AI 時代的「修改意見」可以更直接——因為可以由 AI 快速再產出修正版
給開發者(使用 AI 協作)#
- 小步提交:讓 AI「改一小步、commit 一小步」,產生可獨立審查的小 PR(4.3 節)
- PR 描述寫清楚:交代「AI 做了什麼、改了哪、怎麼測」,降低審查者負擔
- 附測試:證明行為正確(第 5 章)
- 善用 AI Reviewer 先自我檢查:讓 AI 先審一遍自己的產出,再交人審
與自動化護欄的關係#
Code Review 是「人造閘門」,而 CI/CD 的自動化檢查(lint、型別檢查、自動測試)是「機器閘門」,AI Code Reviewer 介於兩者之間。三者分工:
| 閘門層級 | 工具/角色 | 側重 |
|---|---|---|
| 機械層 | CI:lint、型別、格式 | 風格、低階錯誤、可自動化 |
| 智慧層 | AI Reviewer | 常見邏輯/安全問題、海量初篩 |
| 判斷層 | 人類審查者 | 業務邏輯、架構、安全、最終責任 |
本章小結#
- Code Review 是合併前品質與協作的閘門
- AI 時代雙重演變:審查對象更多是 AI 輸出、AI 也成了審查助手
- 分工:AI 初篩(廣)、人類裁決(深),最終責任在人
- 面對 AI 輸出:批判式審查、驗證而非相信、聚焦高風險
- 配合小步提交、清晰的 PR 描述與測試
- 與 CI/AI Reviewer 形成三層品質閘門
想一想#
- 為什麼「AI 寫的程式碼」反而更需要人類細心審查?
- 讓 AI 當 Code Reviewer,試著讓它審查一段你(或 AI)寫的程式碼,比較它與人類審查者的建議差異。
- 在「AI 快速產生大量程式碼」的壓力下,你認為人類審查者該把精力集中在哪裡最有效?