關於code reiview


先談談三個code review的關鍵因素:

一、創建review要簡單

code reivew是一個程序員日常工作中經常做的一件事,理論上來講,任何一個將要submit到SCM的change,都必須經過peer review。如果創建一個review要傻了吧唧的打包代碼,發送郵件,或者shelve一個changelist,再發信告知changelist number,或者進入某個比較先進的code review系統(比如crucible)手工創建一個review,這些步驟都太過繁瑣,任何一個懶惰的程序員都不會有耐心來做這種事,更別說日復一日的做這種愚蠢的事了。

我們需要的是一鍵式創建review - 一個按鈕,搞定! 比如我以前公司用一個p4插件,直接右鍵一個pending changelist,就可以創建一個code review(code collaborator);我現在公司則更加全面,更加徹底,提供了一個命令,可以cover不同的scm,不同的code review系統(支持crucible,gerrit),相當方便、快捷。

二、做review要方便

review的過程,是一個就代碼相互交流的過程,為了使這個交流更加高效,我們需要明確知道在討論的是哪一行代碼 - 顯然,用郵件是一件相當愚蠢的事情,就像有些人吹噓用notepad寫代碼一樣。現在市面上這樣的系統非常多了:我用過的就有code collaborator, crucible。可以直接就某一行代碼開展討論,並及時郵件通知。

三、被review的change要靠譜

你必須在發出review之前,先review自己的代碼 - 編譯過了嗎,回歸測試過了嗎? 新feature功能實現了嗎?bug真的fix掉了嗎? 自己啥都不做,寫完代碼就發review,然后期望別人能夠幫你發現問題(把別人當你的編譯器,測試工具?)是非常不負責任的做法,尤其是對自己的不負責,久而久之,你在team中名氣大臭,終將失去所有人的信任。

 

再談談四個code review的重要作用:

一、威懾

這是我感觸最深的一點:知道自己的change會被review,那么在做這個change的過程當中,你就會比較負責任的往代碼全局最優的方向去修改,而不是為了臨時解決自己當前的問題選擇一個比較丑陋的方案 - 因為你知道,即使你選了這個丑陋的方案,然后做了編譯測試,發出review之后還是會被人以正當的理由退回來,與其浪費那么些時間做無用功,還被人很沒面子的退回來,還不如一開始就做的漂漂亮亮的,久而久之,這種追求最優的習慣就會養成。

二、把關

別人能幫你發現你視覺盲點中,或者視野范圍外的一些問題。畢竟,多個人多雙眼睛,尤其對於比較senior,或者該領域的專家來說,總能對你有所裨益!

三、學習

別人能從你的代碼中學習你優秀的解決問題的思路,寫代碼的技巧,這是team整體提升的一條非常好的道路。事實上,培養新人的一個方法,除了讓他fix bug之外,就是讓他review代碼,當然,一般是作為副手。

四、通知

讓整個team的人知道將有這么個change,我們的做法是創建一個mailgroup:team-cr,把team中每個人都加進來,然后每個review都cc這個組 - 然后對於那些有時間、有需要的同學,就可以監控這個組的郵件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM