VOOZH about

URL: https://read01.com/edmzN0.html

⇱ 代碼審查的重要性 - 壹讀


Sunday, Apr 12, 2026

代碼審查的重要性

2015/06/06 來源:cnblogs
👁 Image
...

英文原文:The Importance of Code Reviews

前些天有人寫了一篇超精彩的博客貼子,是關於之所以要將優秀的程式設計師從平庸的群體中挑選出來的重要性。這篇文章寫得真的很好,因為它講述的情況和產生的可怕後果,在我的職業生涯中我已經見得太多太多了,不過這其實是很容易阻止的。

作者講述了這樣一種現實情況——一家公司需要實施某個非常重要的模塊,但是此時它的高級開發人員 Mr Senior 很忙。因此,他們將模塊給了新手 Mr Newbie——他花了 4 個月來寫模塊,兩個星期的時間來修復 QA 發現的大量 bug,浪費了技術支持無數個小時用於揪出 QA 沒有發現的 bug,甚至導致客戶以軟體滿是 bug 為由取消了合同,等等。最終,高級程式設計師站出來,用了一個月的時間從頭重寫,然後在經過 QA 快速的檢查之後,一個幾乎沒有 bug 的版面世了,所有人都很滿意。

結局很圓滿,沒錯,但是不知道你看出來沒有,其實所有的問題本來都是可以避免的,只要這家公司能夠在日常研發中引入代碼審查程序。

現在,在我解釋如何避免這些問題之前,我想先描述一下我認為一個好的代碼審查程序應該是什麼樣的。所有它需要做的就是遵循以下兩個簡單的原則:

  • 沒有經過審查的代碼不入主分支。哪怕是一行提交,哪怕是最高級開發人員寫的代碼,都不能例外。
  • 每個人都可以審查代碼。即使是最初級的程式設計師,也可以參與進來。

這兩個原則貌似有違直覺。你或許要問了:「為什麼不能相信高級程式設計師編寫的高質量代碼?」又或是,「如何相信新手程式設計師審查後的代碼確保是 OK 的?」

第一個問題其實是不應該問的,因為即使是最資深最高級的開發人員也會時不時地犯錯。雖然手工的代碼審查永遠不可能像自動化測試和腳本化的手動 QA 那樣嚴謹,但是代碼審查執行所需的時間更短,並且很容易發現自動化測試理解不了的問題——通常是位於架構層面的問題——這要是拖到以後修復就會變得很難很難。

至於第二個你不信任新手程式設計師的問題——答案很簡單。多一雙眼睛來檢查代碼總是令人喜聞樂見的,但這也不是主要原因。我們真正想要實現的目的是提高初級程式設計師的技能。在審查時,他可以知道這些高級開發人員是如何編寫代碼的。最重要的是,這將有助於他理解如何批判性地閱讀別人的代碼,一兩個月後,他甚至能夠審查自己的代碼,從而提高了他最終提交到存儲庫中的代碼質量。

現在讓我們回過頭去再看前面作者提到的案例,我們可以發現,如果 Mr Newbie 寫的代碼能夠拿給 Mr Senior 去審查,那麼他很多初始的錯誤在他第一次提交時就會被發現,甚至他還可以向 Mr Senior 請教和討論模塊,從而創造出一個更好的架構,也許都不用像原來那樣花上 4 個月的時間就可以完成任務。此外,Mr Newbie 由於知道需要經過高級開發人員的眼睛,因而在寫代碼時會嚴格要求自己,用批判的眼光看自己的代碼。而最重要的好處是,整個過程會教會 Mr Newbie 很多關於 Mr Senior 思考的方法,也許等到構建下一個模塊時,他已經成為了 Mr Intermediate(中級開發人員)。

您可能感興趣
免責聲明:本文內容來源于cnblogs,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM