注:本文轉載自zhangjincheng的日誌。
每個人都承認程式碼審查(Code Review)的花銷大,而且又耗時,特別是當大家忙完成軟體專案又把它送去軟體測試部門時。對一些開發人員來說,它更是會引發更多的辦公室政治和流言蜚語。
一次程式碼審查可能會使程式碼逐漸得到改進。如果你認為你從有效的程式碼審查中只是稍微改進了一下軟體,那你需要再想一想。以下五點易忽視的原因會給你些許啟發。
1. 開發人員若得知他們的程式碼會被評估,他們會更加努力工作
對程式碼審查最有用的是讓程式設計師知道他編寫的程式碼會被審查。這就像一次內容為400級運算的期末考試。參加考試與否並不重要,因為考試的目的是學會運算。
這個道理也適用於程式碼審查。計算機程式設計師對自己編寫的程式碼總是相當自信。程式設計師之所以熬夜工作,是因為他們真正熱愛自己的其工作,而不是出於金錢或其他目的。因此,程式碼審查可以直接影響開發人員的成就感。
程式設計師不希望有任何針對他程式碼的批評,所以一旦知道程式碼將被審查,就會採取額外的努力做好工作。實際上,程式碼審查通常不能發現什麼的。但是,如果知道有人要審查編碼,那麼在編輯過程中程式設計師就會盡可能做好。
2. 程式碼審查可以改進開發人員的程式設計技術
在你的心裡,你可能不會太在意某一特定軟體專案的成功。但是,大多數程式設計師想要改善他們的技術,這意味著向其他人學習。沒有比程式碼審查更好的學習機會了。
例如,從一個優秀的開發人員的編碼中,你能更清楚地瞭解程式語言可以做什麼,你將學會編寫更有效的程式碼,並找到更多可用於組織程式碼的模式。
程式碼審查能幫助團隊成員從彼此的錯誤中汲取經驗,併成為更好的程式設計師。通過簡單的反饋意見,公司可以提高了其開發員的水平。開發員重視審查,因為他們知道這將幫助他們成長。當程式碼審查以小組為單位進行時,整個團隊都得以提高。但更好的是,程式碼質量也得到提升,並易於維護。
3. 程式碼審查有利於導師制度,程式設計師們會學到更多
程式碼審查有助於培訓新開發人員並使他們熟悉其他同類模組。審查過程有助於促進思想交流,使程式碼可重複利用。
程式碼審查有一個系統的方法,可以為程式設計師分享團隊領導們的經驗提供平臺。當領導重寫某些程式,使程式執行效率在3分鐘內提升50倍時,是十分令人振奮的事情!編寫其他程式時,你或許就可以找到一些新的方法或創造一種新的解決方案了。
4. 程式碼審查可以實現優質文化的傳承
程式碼審查的目的是提供巨大的機會。程式碼審查讓程式碼庫和編碼團隊都有機會發展一種連貫性和可靠性。它把有經驗和專業知識的團隊作為整體加以利用,程式設計師可以磨鍊他們的專業技能和經驗,同時以他們的經驗和專業知識為公司和團隊服務。這使該公司的投資得到有形的回報:愉悅的程式設計師以及工作程式碼的能力和一致性不斷獲得提升。
程式碼審查有助於創造一種微妙的變化,因此,管理好和做好程式碼審查可以很大程度上改善軟體質量。開發人員會對審查中有出錯的資料的判定迅速給出抱怨,但我們必須改變規則,要將優質高效發展作為衡量過程的尺度而不僅是價值傳遞的里程碑。
5. 程式碼審查可以激發團隊凝聚力
人們認為程式碼審查僅僅是尋找漏洞,但它卻能把人團結在一起,它可以提供的遠遠超過你所預期的。
又很多這樣的例子在執行程式碼審查時發生,但是最好的成功模式是在一個團隊成形時就開展審查。你從事某個專案的時間越長,所建立的程式碼質量就越好。這是因為所有的程式碼審查過程和管理在專案開始時就開始了。
推薦閱讀:《程式碼審查:大家都應該做的事情》