文章分享自公眾號: DevOps云學堂
如何在代碼審查方面表現(xiàn)出色
在本文中,我們將簡要介紹13種代碼審查標準,這些標準可以極大地幫助改善軟件的運行狀況并保持開發(fā)人員滿意。
顧名思義,代碼審查是一個過程,其中一個或多個開發(fā)人員審查或篩選另一位開發(fā)者(作者)編寫的代碼,以確保:
- 代碼沒有任何錯誤或問題。
- 符合所有質量要求和標準。
- 代碼執(zhí)行了預期的測試。
- 合并后,它將使代碼庫的運行狀況保持更好。
這就是為什么代碼審查是軟件開發(fā)的關鍵部分的原因。代碼審閱者充當代碼庫管理員,負責確定代碼是否處于要成為代碼庫的一部分并進入生產的狀態(tài)。
Google以其卓越的技術而著稱,它們具有有效的代碼審查標準,這些標準似乎突出了審查代碼時要記住的一些要點。在Google,代碼審查的主要目的是確保Google代碼庫的整體代碼運行狀況隨著時間的推移而不斷改善。
這是您在查看更改列表時要記住的事項列表。
審查標準
1.該代碼改善了系統(tǒng)的整體運行狀況
每個更改列表(Pull Request)都會改善系統(tǒng)的整體運行狀況。想法是,由于進行了如此小的改進,每次合并后,軟件或代碼庫的運行狀況都會得到改善。
2.快速的代碼審查,響應和反饋
首先,不要延遲推送(合并)更好的代碼。不要指望代碼是完美的。如果它的狀況可以改善系統(tǒng)的整體運行狀況,則請推送。
“這里的關鍵是沒有'完美'的代碼,只有更好的代碼?!?/p>
如果您不在一項重點任務的中間,那么請在代碼完成后立即進行檢查;但是,一個工作日是響應拉取請求所需的最長時間。預計變更列表將在一天之內獲得多輪的部分/完整代碼審查。
3.在代碼審查期間進行教育和啟發(fā)
通過盡可能共享知識和經驗,在代碼審查期間提供指導。
4.審查代碼時遵循標準
始終牢記,編碼標準此類文檔是代碼審查期間的絕對權威。例如,要在制表符和空格之間保持一致性,可以引用編碼約定。
5.解決代碼審查沖突
通過遵循樣式指南和編碼標準文檔中商定的最佳實踐,并尋求其他在產品領域具有更多知識和經驗的人的建議,來解決沖突。根據(jù)嚴重性,處理沖突有所不同。
如果您的評論是可選的或次要的,請在評論中進行說明,然后由作者決定是解決還是忽略它們。作為代碼審閱者,您至少可以建議在沒有樣式指南或編碼標準的情況下,更改列表(請求)與其余代碼庫保持一致。
6.演示UI更改是代碼審查的一部分
如果更改列表(Pull Request)更改了用戶界面,則除了代碼查看之外,還必須進行演示以確保外觀上的所有外觀均符合預期并與模擬匹配。
對于前端變更列表(Pull Request),始終建議進行演示/演練,或確保變更列表還包括必要的UI自動化測試,以驗證添加/更新的功能。
7.確保代碼審查伴隨所有測試
除非緊急情況,否則拉取請求(更改列表)應伴隨所有必要的測試,例如單元,集成,端到端等。
緊急情況可能是需要盡快修復的錯誤或安全漏洞,以后可以添加測試。在這種情況下,請確保創(chuàng)建了適當?shù)膯栴},并確保有人在完成熱修復或部署后立即擁有所有權才能完成。
沒有足夠的理由跳過測試。如果由于時間限制,某些目標有無法實現(xiàn)的風險,那么解決方案不是跳過測試,而是要對可交付成果進行范圍界定。
8.專注時,不要打擾自己進行代碼審查
如果您正處于重點工作中,請不要打擾自己,因為這可能需要很長時間才能恢復正常。換句話說,打斷專注的開發(fā)人員所付出的代價比讓開發(fā)人員等待代碼審查要高得多。在計劃的休息時間(例如午餐,咖啡等)之后進行代碼檢查。
期望并非總是在同一天完成并合并整個代碼審查過程。重要的是迅速給作者一些反饋。例如,您可能無法進行完整的檢查,但是您可以快速指出一些可以研究的內容。這將極大地減少代碼審查期間的挫敗感。
9.復習一切,不要做任何假設
查看分配給您檢查的每一行代碼。不要對人工編寫的類和方法做任何假設,并且應該確保您了解代碼在做什么。
確保了解您正在檢查的代碼。如果沒有,請進行澄清或要求代碼演練/解釋。如果您有部分代碼不具備審閱的資格,請確保還有其他合格的開發(fā)人員可以審閱代碼的那些部分。
10.回顧代碼時要顧全大局
從更廣泛的背景來看變化通常是有幫助的。例如,更改了文件,并添加了四行代碼。不要只查看四行代碼;相反,請考慮查看整個文件并檢查新添加的內容。它們會降低現(xiàn)有代碼的質量,還是會使現(xiàn)有功能成為重構的候選對象?
如果不在函數(shù)/方法或類的上下文中檢查此類簡單的添加項,則隨著時間的流逝,您將繼承一個類,該類是不可維護的,超級復雜的,難以測試的,無法完成的所有工作,并且難以擴展或重構。
請記住,隨著時間的推移,很少的改進加起來就可以產生具有最少數(shù)量缺陷的優(yōu)質產品,同樣,隨著時間的流逝,輕微的代碼降級或技術負擔也會加重并導致產品難以維護和擴展。
11.認可并鼓勵代碼評審期間的良好工作
如果您在變更列表中看到了一些不錯的東西,請別忘了喊出作者的出色作品并鼓勵他們。這是我個人以前從未做過的事情。代碼審查的目的不僅應該是發(fā)現(xiàn)錯誤,還應該鼓勵和指導開發(fā)人員所做的出色工作。
12.在代碼審查中要謹慎,尊重,友善和清晰
至關重要的是,在代碼審閱期間,您要善良,清晰,禮貌和尊重,同時也要對作者非常清楚和樂于助人。查看代碼時,請確保對代碼而不是開發(fā)人員做出評論。
13.解釋您的代碼審查注釋,并牢記范圍
每當代碼審閱意見提出替代方法或進行標記時,至關重要的是要解釋原因并根據(jù)您的知識和經驗提供示例,以幫助開發(fā)人員了解您的建議將如何幫助提高代碼質量。
當建議修復或更改時,請在如何指導作者修復代碼方面找到適當?shù)钠胶?。例如,我很欣賞指導,解釋,一些提示或建議,而不是整個解決方案。
以上就是W3Cschool編程獅
關于Google鼓勵的13條代碼審查標準的相關介紹了,希望對大家有所幫助。