如何對Code Review的評論進行分級


我曾寫過一篇關於Code Review的文章《Code Review 最佳實踐》,在文章中建議對Code Review的評論進行分級:

建議可以對Review的評論進行分級,不同級別的結果可以打上不同的Tag,比如說:

  • [blocker]: 在評論前面加上一個[blocker]標記,表示這個代碼行的問題必須要修改

  • [optional]:在評論前面加上一個[optional]標記,表示這個代碼行的問題可改可不改

  • [question]:在評論前面加上一個[question]標記,表示對這個代碼行不理解,有問題需要問,被審查者需要針對問題進行回復澄清

類似這樣的分級可以幫助被審查者直觀了解Review結果,提高Review效率。

 

當時只是簡單的建議分成三個級別:Blocker、Optional和Question,今天看到Netlify的一篇文章《Feedback Ladders: How We Encode Code Reviews at Netlify》,講到了在Netlify是如何對Code Review的反饋進行階梯划分的,同時還配有形象的Emoji圖標,非常值得學習借鑒。

 

在這里我簡單介紹一下Netlify是如何對Code Review反饋進行分級的。

 

⛰ 大山,嚴重問題,必須馬上采取行動

如果說你的代碼是房子,那么這座山⛰️就長在你的房子里面,房子已經被撐破沒有空間了,在做其他事情之前必須立即把山給搬了。

 

⛰️屬於最高級別的反饋,問題可能不僅僅是當前PR(Pull Request,合並請求)導致的,而是發現在master的代碼有非常嚴重的問題,屬於非常嚴重並且必須馬上修改的級別。

 

比如說在Review時發現了正在運行的程序中存在的安全漏洞和導致系統崩潰的嚴重Bug。

 

🧗‍♀️ 巨石,嚴重問題

如果說你的代碼是房子,那么🧗‍♀️就像是堵在房子門口的巨大石頭,非常嚴重,你不能出門。當然如果你有更緊急的事情,可以先處理更緊急的事情,比如廚房漏水了。

 

🧗‍♀️巨石屬於嚴重的問題,不修復當前的PR不能獲得批准,但是不影響其他工作任務。

 

比如說發現當前PR會導致程序性能下降。

 

⚪️ 鵝卵石,不嚴重,但是需要后續改進

如果說你的代碼是房子,⚪️就像你房間地板上的鵝卵石,不影響你的正常生活,但是很煩人,可以等有時間的時候清理掉

 

⚪️屬於問題不嚴重,不影響當前PR的合並,但需要在未來某個時間解決。而且通常這種情況下,最好是在合並PR前,創建一個Ticket來后續跟蹤,避免問題不了了之!

 

比如說在你的PR中,一個顏色有細微的差別,或者漏寫了幾個測試,那么可以先通過PR,后續再改進,但是最好要創建Ticket跟蹤后續改進。

 

⏳ 沙子,不嚴重,但是需要有后續的思考

如果說你的代碼是房子,那么⏳就像是房間的沙子,你要考慮一下是不是值得清理一下。當然如果你的房子本身就是在沙灘旁邊,無論怎么及時清理也總會有沙子跑進來,那么你就沒必要時時清理,但是有必要跟你的同事解釋清楚。

 

⏳屬於問題不嚴重,不影響當前PR的合並,但是需要技術負責人考慮是不是需要后續行動,或者做出進一步解釋。

 

比如說在你的PR中,有人建議對代碼重構一下以提高可讀性。

🌫 灰塵,無關緊要,可做可不做

如果說你的代碼是房子,那么🌫就像是房間的灰塵,有人認為值得清理,有人覺得無所謂。

 

🌫屬於可有可無的問題或者建議,不影響PR的合並。后續可做可不做。

 

比如說在你的PR中,有人對於代碼風格和命名上的一些建議。

 

總結

上面就是對於代碼審查的分級,從山⛰️到大石頭🧗‍♀️到小石子⚪️到沙子⏳最后到灰塵🌫,很形象也很實用。

 

下次你在給團隊做代碼審查的時候,不妨嘗試用上面的分級方式對你的反饋進行分級,這樣被反饋的團隊成員就很容易知道反饋的級別,從而快速的做出相應的反應。

 

 

 

 

 


免責聲明!

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



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