你們公司做代碼審查嗎?

jopen 10年前發布 | 6K 次閱讀 代碼

每當從各種公司聽到他們正在嘗試自動化部署/測試的事情,我都非常關注,但通常會很吃驚,他們很少會考慮去實行代碼審查制度。

看到這種情況,我通常想問:如果代碼沒有經過其它人的審查,你如何知道你要測試的是什么?這答案(如果有的話)通常是捏著手指頭說有幾個人在做代碼審查或“正在考慮中”。

沒有代碼審查?真的嗎?不可思議?!?

代碼審查不是可有可無的。

不論你采用什么形式的測試過程,什么形式的部署過程,沒有代碼審查——game over。為什么?因為代碼的質量是一種人能看懂的質量。不管你如何測試,有如何嚴謹的部署流程,只有當另外一個人看了這些代碼,并且表明能看懂時,這些 代碼才有意義。如果看不懂,你認為這樣的代碼——雖然測試通過、部署符合流程——可以上線嗎?

沒有經過代碼審查,測試說明不了任何問題。測試通過但沒有經過代碼審查的代碼仍然是有bug的。

什么是代碼審查?

請參考谷歌是如何做代碼審查的

設計中使用的“走廊UX測試”是說:在開始實現你的設計前,至少需要有一個人看過你的設計。代碼審查是相同的道理。

代碼審查是說:在把你的代碼合并到代碼庫里之前,請至少找一個人看看你的代碼。

如何進行代碼審查?

下面是代碼審查基本的步驟:

  1. 把身體向左轉。

  2. 看到另外一個程序員?拍拍他的肩膀。

  3. 讓他看你的顯示器。

  4. 說:這代碼你能看懂嗎?我打算把它提交到代碼庫里。

  5. 聽他的建議。

  6. 自己做決定:是應該修改一下,還是繼續提交到代碼庫里。

就這樣。

現在,我想告訴你,有大量的代碼審查工具可以使用。它們都能高度的自定義配置。它們的作用都是讓你代碼審查過程更方面、靈活。

簡單的幾款代碼審查工具

下面是我推薦的幾款簡單的代碼審查工具(如果你的公司的程序員少于5千人)。

  1. less

  2. diff,wdiff

  3. GitHub pull requests

就是這些。雖然還有很多很多的代碼審查工具,我很少聽說哪個程序員說喜歡它們的。而我的觀點,less, diff, github pull requests能解決我們正常開發中的大部分代碼審查問題。

如果你的代碼審查過程過于復雜,需要使用大量的工具,這說明你過分的依賴于一些不必要的形式,你應該簡化它們。你可以說成你的反對的觀點,或在微博上和我們討論。

你們公司做代碼審查嗎?

[英文原文:Do you do code review? ]
來自: 外刊IT評論 http://www.vaikan.com/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!