在日常寫完代碼之后,你是否會(huì)有Code Review的習(xí)慣?
Code Review即代碼審查,其目的在于找到開發(fā)時(shí)被忽視的Bug,以此極大地提高代碼質(zhì)量也可以幫助開發(fā)者們更加熟悉項(xiàng)目。但遺憾的是,很多業(yè)界的開發(fā)者并沒有常規(guī)代碼審查的習(xí)慣。那么對于程序員而言,Review是否真的是一項(xiàng)必備的工作?
凡事知其然還要知其所以然,我們首先需要知道什么是Code Review的目的是什么。
Code Review主要用來在軟件工程過程中改進(jìn)代碼質(zhì)量,通過Code Review可以達(dá)到如下目的:
●在項(xiàng)目早期就能夠發(fā)現(xiàn)代碼中的BUG
●幫助初級(jí)開發(fā)人員學(xué)習(xí)高級(jí)開發(fā)人員的經(jīng)驗(yàn),達(dá)到知識(shí)共享
●避免開發(fā)人員犯一些很常見,很普通的錯(cuò)誤
●保證項(xiàng)目組人員的良好溝通
●項(xiàng)目或產(chǎn)品的代碼更容易維護(hù)
具體來說,Code Review有哪些好處呢?
在 Code Complete 這本書中講述了兩個(gè)很有說服力的案例。在一項(xiàng)對同一個(gè)團(tuán)隊(duì)開發(fā)的很多個(gè)程序進(jìn)行對比的研究中,沒有經(jīng)過 review 的程序平均每 100 行有 4.5 個(gè)錯(cuò)誤,而經(jīng)過 review 的程序平均每 100 行只有 0.82 個(gè)錯(cuò)誤,也就是說 80% 的錯(cuò)誤在 review 中被修正了。AT & T 的一個(gè) 200 多人的部門在開始執(zhí)行 code review 后,開發(fā)效率提高了 14%,而錯(cuò)誤減少了 90% 左右。
除了減少缺陷,避免在診斷錯(cuò)誤上浪費(fèi)時(shí)間,review 的過程還可以通過相互的督促保證代碼有好的可讀性、文檔、風(fēng)格,并同時(shí)檢查測試覆蓋率等開發(fā)過程中的規(guī)范,從而提高團(tuán)隊(duì)的協(xié)作效率。對于所有復(fù)雜的事情來說,總是越早發(fā)現(xiàn)問題,解決問題的成本越低。
對于經(jīng)驗(yàn)不足或者剛開始一份新工作的人來說,通過 code review 可以得到更資深的人幫助,更快熟悉現(xiàn)有的規(guī)范和架構(gòu),在新的環(huán)境和團(tuán)隊(duì)中快速提升。
對于資深的工程師來說,讓其他同事 review 代碼,有利于在團(tuán)隊(duì)中傳播經(jīng)驗(yàn)、知識(shí)和好的實(shí)踐。身邊的同事水平提高會(huì)讓自己的工作也更高效。并且誰都有需要休假的時(shí)候,無論是公司還是個(gè)人都不希望有太多工作因此而停滯,如果有平時(shí)就熟悉自己工作的同事,這個(gè)問題就很好解決。
此外,如果說寫代碼是一個(gè)學(xué)習(xí)過程,怎么做一個(gè)好的代碼審核人更是一個(gè)學(xué)習(xí)和成長的過程。自己繞過一個(gè)坑不難,難的是看到別人那么走,遠(yuǎn)遠(yuǎn)地你就能告訴他/她那里有個(gè)坑。而他/她在經(jīng)你指出多次后,下一次他/她也會(huì)幫著指出別人的類似的問題。
像很多其他事情一樣,code review 最難的就是邁出第一步。一旦開始,花在 review 過程的每一分鐘都會(huì)很快被成倍地賺回來。其實(shí)合理的code review即不用浪費(fèi)很多時(shí)間,而且問題都能快速暴露,快速修復(fù),代碼始終都能在保證在一個(gè)正確的方向上。