快刀斬亂麻,DevOps讓代碼評審也自動起來

在Dr.Michaela Greiler的 How Code Reviews at Microsoft一文中提到,微軟有140000名員工,其中44%員工是工程師。這意味着,有超過6000名的工程師同時在同一個代碼庫上開發Office、Visual Studio、Windows等產品。

想要確保不同子團隊開發的代碼能完美協作,並不是一件易事。那麼,如此大的工程師規模下,微軟到底是如何確保代碼質量的呢?祕密在於代碼評審!

微軟針對900多名開發人員的調查研究表明,有36%的開發人員表示他們一天回進行多次代碼評審。以天爲單位和以周爲單位的開發人員分別佔比39%和12%,僅有13%的開發人員一週內未進行任何代碼評審。

圖片源自微軟調查報告

(圖片源自微軟調查報告)

代碼評審是指在軟件開發過程中,對編寫的代碼進行系統檢查和評估的過程。這是一種質量控制方法,旨在發現代碼中的潛在Bug。由此可見,代碼評審起到了不可忽視的重要作用,從而確保代碼可以在如此大規模的開發人員內實現順暢的協作。

一、是什麼絆住了你的代碼評審?

代碼評審有着諸多好處,如提高代碼質量、發現代碼中的缺陷、知識轉移等。代碼評審的步驟看似很簡單,只需要“提交-修改-完善”,但實際過程往往會發生一些預期之外的事情,而這些事情則會降低整個代碼評審的積極性甚至可能影響團隊的工作效率。

  • 評審時間過長

《軟件工程通史》的作者卡珀斯·瓊斯(Capers Jones)分析了超過12000個軟件開發項目,從實驗分析結果看,一般的代碼評審速度約是一小時150行源代碼。但對於一些關鍵的軟件(例如安全關鍵系統的嵌入式軟件)來說,一小時審查數百行源代碼的審查速度太快,可能無法找到其中的問題。

我們不難看出,雖然代碼評審對於發現潛在Bug起到了重要的作用,但也需要投入大量的時間,像業務需求不穩定、時間要求緊迫的項目,就難以進行代碼評審。

  • 評審效果難以衡量

代碼評審的好處通常在長期和多次的實踐中才能顯示出來。通過代碼評審,團隊成員可以學習和應用更好的編碼技巧和設計原則,從而提高自身的編碼能力。這種個人和團隊的成長需要時間和經驗的積累,因此,代碼評審的效果在短期內可能不容易觀察到。

正是這些原因,導致不少開發人員的代碼會出現“管他有幾個Bug,能跑就行”的現象。長此以往,就會出現“屎山代碼”導致可讀性差、可維護性差等情況。

當你把代碼寫成一坨屎,仍然能運行時

(當你把代碼寫成一坨屎,仍然能運行時)

二、DevOps平臺在代碼評審中的作用

代碼評審並不是浪費時間,代碼評審一般可以找到並消除約65%的Bug,最高可以到85%。爲了解決絆住代碼評審的困難,越來越多的團隊開始採用DevOps平臺來輔助代碼評審,DevOps平臺提供了一種集成和協作的環境,使得代碼評審過程更加高效。

  • 代碼可視化和協作

代碼倉庫通過版本控制系統(如Git)管理代碼的不同版本和變更歷史。代碼評審可以針對特定的代碼版本進行,通過對比不同版本之間的變更,開發人員可以更好地理解代碼的演變過程和改動內容。同時,代碼倉庫提供了一個協作平臺,團隊成員可以在同一個代碼庫中共同開發和維護代碼。

  • 使用代碼靜態分析工具

靜態代碼分析是一種在不執行代碼的情況下對代碼進行測試的方法,開發人員可以通過DevOps平臺管理SonarQube等靜態代碼分析工具,自動檢測潛在的代碼Bug,如空指針引用、未使用的變量等。

  • 納入CI/CD過程

我們可以將代碼評審納入持續集成和持續交付過程。每當有新的代碼提交時,自動觸發構建、測試和評審流程。這樣可以及早發現問題,並確保高質量的代碼被納入主幹分支。

  • 數據分析和報告

DevOps平臺可以收集和分析代碼評審的數據,提供有關代碼質量和審查效率的指標和報告。這些數據可以幫助團隊瞭解代碼評審的效果,並進行持續改進。例如,通過分析代碼評審的結果和Bug的修復時間,團隊可以識別代碼質量問題的瓶頸,並採取相應的措施進行改進。

DevOps讓代碼評審自動化

三、寫在最後

一個成熟的團隊中,代碼評審是整個研發流程中不可或缺的一步。我們注重代碼審查的前提是一定要注重代碼規範,統一的代碼規範纔有助於項目研發有效推進。

在此分享一下,禪道團隊的代碼規範原則:

  • 是否是駝峯還是匈牙利方法不重要,重要的是執行;
  • 最重要的是命名,與其絞盡腦汁寫註釋,不如想象如何命名;
  • 好的版式易於閱讀,學會用換行和註釋做代碼片段區隔;
  • 註釋最重要是正確,一定要和代碼保持同步。

通過上文,我們不難看出,DevOps在代碼評審方面發揮着積極作用,能夠提高代碼評審的效率。禪道積極響應市場,推出了禪道DevOps平臺版,這不僅僅打通了從產品、需求、項目到開發、測試、運維環節,還具有加快交付速度、提高交付質量、減少團隊摩擦、實現快速反饋等優勢。

禪道DevOps平臺

(禪道DevOps平臺)

“冰凍三尺非一日之寒,滴水石穿非一日之功”。雖然代碼評審會耗費團隊不少的精力和時間,但我們不能低估它的長期價值,堅持下去必然會讓整個代碼庫、系統甚至團隊更加健康。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章