代码Verify简介
序
對于開發者而言,編譯代碼和提交代碼是必不可少的流程,同一個需求反復提交的情況也時常出現,那么怎么避免這種情況,且保證代碼的質量,這就是Verify CI的目標。Verify表示認證驗證的意思,結合到我們軟件開發者的身上就是對代碼的認證。何謂對代碼的認證,可以理解為對代碼的功能,可維護性,復雜度等質量指標的驗證,如果不達標就得不到認證。那么怎么將Verify集合到實際的開發流程中呢?
對于一般的開發模式,如敏捷開發模式下,對實際的開發在來說,大概的流程是:接收需求,開發需求,需求自驗證,提交代碼。從實際的開發流程不能看出,只要保證了代碼提交環節,就可以保證共享代碼的質量,所以在代碼提交環節做Verify,從而達到高質量的保證。
結合一些開源的工具,我們可以實現如下流程,在代碼提交的時候,觸發認證流程,認證通過以后,代碼入庫。代碼一般保存在git倉庫中,開源代碼管理工具gitlab就可以實現,觸發認證的流程可以使用開源工具Jenkins,然后由Jenkins觸發各種質量認證流程,綜合得出一個結論,返回給gitlab,最后gitlab根據結果決定是否入庫。
?
代碼質量Verify的流程
代碼質量認證的維度很多,如編譯,靜態檢查,單元測試,復雜度,冒煙測試,集成測試等環節,本文主要關注的維度如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- 代碼編譯:代碼能不能正常編譯成功,這是代碼能不能入庫的基本條件
- 復雜度檢查:復雜度的一種度量方式是圈復雜度,簡單的理解就是一個函數中有多少個if語句,函數的圈復雜度就是多少,圈復雜度越高說明代碼的邏輯越復雜,可維護性就越低,質量越差。
- 靜態檢查:靜態檢查一般要借助專業的檢查工具,檢查的規則一般是由專家編輯,難度非常大。靜態檢查的主要目標是,在代碼基本功能正常的前提下,找出代碼中容易出問題的地方,提前暴露問題。如:數組越界,拷貝越界,資源泄漏,死循環等。幾種代碼靜態檢查工具:klocwork、coverity等。
- 單元測試:對于實際物理驗證環境非常復雜的代碼,單元測試將是一個神奇。它可以讓你直接在代碼的編輯環境中,模擬真實的物理環境運行代碼,快速的對代碼進行調試。
- 覆蓋率:代碼的覆蓋率一般是在單元測試后進行檢查,因為覆蓋率的計算需要依賴單元測試的可以執行文件的運行結果。覆蓋率 = 單元測試運行的代碼行數 / 總的代碼行數。代碼覆蓋率達不到一定指標,就算覆蓋率檢查不通過。
?
體會
在實際的開發過程中,搭建Verify的環境非常容易,難的是堅持入庫的標準不動搖。一般情況下,代碼就算Verify不過,也可以強制入庫,導致破窗。唯一的方法就是堅持底線不突破,大家一起維護。
?
轉載于:https://www.cnblogs.com/chusiyong/p/11395548.html
總結
以上是生活随笔為你收集整理的代码Verify简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生而不凡的EOS区块链技术
- 下一篇: ⊱静心抄经,是对抗这个浮躁社会的最好武器