簡單可行的code review規則

前言

曾經有一段垃圾代碼放在個人面前,我沒有拒絕,等我真正開始接手的時候我才後悔莫及,程序員最痛苦的事莫過於此!java

每當接手別人的代碼,都有一種想從新寫一遍的感受,等到別人再來接手你的代碼時,一樣的感受。。。爲何會有這種現象存在?由於沒有Code Reviewgit

 

 

 

衡量代碼質量的惟一標準就是每分鐘罵出「WTF」 的頻率。(出自Martin(Bob大叔)《代碼整潔之道》)當你的代碼在作 Code Review 時,審查者要是憤怒地吼道:程序員

「What the fuck, is this shit?」 「Dude, What the fuck!」 等言辭激烈的詞語時,那說明你寫的代碼是 Bad Code,若是審查者只是漫不經心的吐出幾個:編程

「What the fuck?」 那說明你寫的是 Good Code。安全

 

價值

 


 

 

你說個人code須要review?架構

一些沒采起過code review模式的資深工程師可能會有一些抵觸情緒,但放眼業界,code reveiw的好處是毋庸置疑的。app

Google內部人士的一段話。模塊化

The biggest thing that makes Google’s code so good is simple: Code Review.函數

At Google, no code, for any product, for any project, gets checked in until it gets a positive review.性能

 

一、保證項目質量、提升代碼可讀性

二、加速我的成長、突出團隊價值

三、知識傳播與共享

四、凝聚團隊共識

五、不斷提升團隊的下限

but,良好的程序設計老是優於code review,作好設計才能減小review工做量。

內容

Code Review的內容:編程素養、業務邏輯、架構設計、單元測試、性能、安全

規則

master項目收回提交權限,由QA把控,develop到qa分支merge須要qa review確認。

feature分支往develop分支提pr必須遵循的遊戲規則:

  1. 每次提交review代碼修改行數不得超過1000行,一小時內review完(先試行,最終目標400行,Cisco開發團隊研究顯示,進行一次Code Review不要超過400行代碼(LOC, Line of Code)。大腦一次只能有效處理這麼多信息,超過400 行找到缺陷的能力減弱。)

     

     

     

  2. 至少每一個週期(兩週一個開發週期)提一次review,週五早上互相喊一下,最晚提交時間週五下午2點前,週五下午的時間用來修改review代碼

  3. 須要保證單元測試覆蓋到,功能點要拆分足夠細

  4. checkout feature分支後能編譯運行正常

  5. 工做日能夠上午11點前提pr,須要組內指派資深工程師兩名, 至少一人review經過

  6. 提交pr兩天內須要處理完畢,打回或經過

小步迭代,理論上每週自測完成就能夠提交pr merge到develop分支

 

Checklist

常規項

  • 代碼可以工做麼?它有沒有實現預期的功能,邏輯是否正確等。

  • 全部的代碼是否簡單易懂?

  • 代碼符合你所遵循的編程規範麼?這一般包括大括號的位置,變量名和函數名,行的長度,縮進,格式和註釋。

  • 是否存在多餘的或是重複的代碼?

  • 代碼是否儘量的模塊化了?

  • 是否有能夠被替換的全局變量?

  • 是否有被註釋掉的代碼?

  • 循環是否設置了長度和正確的終止條件?

  • 是否有能夠被庫函數替代的代碼?

  • 是否有能夠刪除的日誌或調試代碼?

 

代碼行數統計:查看feature分支提交了多少行代碼? (exclude)掉idl目錄 (java thrift項目)

git log --author="shenguanpu" --since='2019-04-22' --pretty=tformat: --numstat ":(exclude)idl" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

added lines: 17, removed lines: 15, total lines: 2

 

參考文獻:

https://mp.weixin.qq.com/s/A7XlAliQL__RcpK4AzuacQ 從Code Review 談如何作技術(陳皓)

 

https://mp.weixin.qq.com/s/jXT1-bC7dfvzhRmh47H69g 如何寫出優雅的代碼

 

https://mp.weixin.qq.com/s/n1B0wLicwQByYslz6hYwnw 你真的會Code Review嗎?

 

https://mp.weixin.qq.com/s/YCw7OP3RKF1EJb064IHEXg code review 有用嗎?

 

https://mp.weixin.qq.com/s/nWntcljELd5g98b8RFTjXg code review 那些事兒

 

https://mp.weixin.qq.com/s/XvSuLKADV17-uF8mZmYXnw 程序員必備的代碼審查(Code Review)清單

 

https://mp.weixin.qq.com/s/6SoJP9BMRNyLMJjwSkctUw 如何高效的Code Review

 

https://mp.weixin.qq.com/s/sXwuMb8lQzijWTthnaeinw 論code review代碼審查

 

https://mp.weixin.qq.com/s/YOhKriAtUz2VViJtJRhbBw 享用騰訊免費早餐同樣天然的作Code Review,他們如何作的?

相關文章
相關標籤/搜索