當前位置:
首頁 > 科技 > 開發者應該知道的代碼審查工具,杜絕代碼bug

開發者應該知道的代碼審查工具,杜絕代碼bug

作者丨Aaron Raizen

翻譯丨Diwei

由於項目時間緊,所以寫出的代碼就滿是bug?別再找借口了,本文作者列舉出了7種工具幫助你審查代碼,保證代碼的高質量,讓我們一起看看都有哪些工具吧!以下為譯文。

讓我們想像一種場景,假設你是一位項目經理,你這周就要把系統提供給客戶。到了周一早上,但是你團隊裡面95%的成員仍然昏昏欲睡。哦,你猜為什麼?因為他們的代碼都是bug。應該怎麼做呢?

在想像一種場景,也許你是一名開發人員。現在是周一早上。你從周末開始就睡意不斷,你的項目經理因為本周「不得不出貨」,而你的代碼卻到處都是bug。的確,應該怎麼做呢?

好吧,你可以從旁邊的小隔間打電話給「大鬍子」史蒂夫,來檢查你的代碼,但如果真讓他來檢查,可能你的鍵盤上面就都是他的鬍渣了,你肯定不想這樣。看起來你需要一個代碼審查工具。你很幸運,因為我剛好在這篇文章里準備了一份工具清單。但首先我需要介紹一些背景信息。

通常我們討論的代碼審查工具有兩種類型:自動和手動。前者「根據一組預定義的檢查源代碼的規則,生成報告」,而後者則用於「需要合作共同檢查和討論變更的場景時,而且需要將這過程的歷史也存儲下來以備將來參考」。(維基)這裡我們將會重點介紹手工代碼審查工具,所以針對我們今天提及的頂級代碼審查工具,你會提供什麼意見,你的最終選擇又會是哪一款工具。

首先,讓我們看一下Atlassian的Crucible,它是當今市場上最受歡迎的選擇之一。它是一個基於web的應用程序,主要針對企業。不僅促進了非同步審查和對代碼的注釋,而且還使得團隊能夠很容易地進行協作。

Crucible還集成了Atlassian的其他產品,比如Jira的bug和問題追蹤功能,以及Bitbucket伺服器。另外,看看Atlassian市場,你可以看到許多用於定製Crucible的附加組件。他們甚至還提供一個REST API以幫助用戶構建自己的附加組件。

這裡有圖表和報告、內嵌注釋、線程對話和可顯示最近評論和審查更新的活動流。

價格也很合適:你可以免費用30天,而且有5名用戶可以有機會只需10美元。

接下來是Review Board,「一個開源的、基於web的代碼和文檔審查工具,用於幫助公司、開源項目和其他組織保持代碼的高質量,而且bug數量也會比較低。請注意,這是審查代碼和文檔的。這意味著你可以用它來審查任何事情。簡單地將一個文件拖放到一個評審請求中,然後任何人都可以在它上面留下注釋。例如,將它用於日誌文件、控制台輸出,甚至可以對UI和圖形進行評論和評論。

Review Board有一個很高級的功能,就是差異查看器(文件比較),它允許將代碼擴展到最近的函數或類,最近的代碼更改,或者每次20行。它還提供了簡單的注釋、基於web的界面和命令行工具來簡化審查請求提交過程。指示板提供了對所有審閱請求的最新概述。

Review Board是正在被幾家大公司(領英、Mozilla、Yelp)免費使用。

Parasoft提供了一系列的測試工具,這些工具獲得了許多好評,其中就包括支持任何語言和文件類型的Peer review。而且,當手工評審代碼還不夠時,它還集成了其它一些用於單元測試、端到端功能和負載測試、服務虛擬化的軟體。

Parasoft中有個很棒的功能,就是工作流管理的自動化,包括準備、通知和跟蹤。新的代碼被自動識別,接著與指定的審閱人員匹配,然後跟蹤每個評審項目的進展直到結束。開發人員只需簡單地檢查代碼,然後根據預配置的審核人員映射關係,就可以自動地檢查包,並將其分發到適當的審閱人員的集成開發工具中。這個功能很贊!支持所有常見的開發環境。

亞伯拉罕·林肯曾經說過:「合作推動創新」。哦,不,開玩笑的,這不是真的(也許他曾經說過「不要相信你在網上看到的一切」)。這實際上是Smartbear公司的Collaborator標語—Collaborator適用於所有開發工作流程的代碼評審和文檔評審(這是他們的另一個口號)。

所以使用這款工具,我們將得到對源代碼和其他文檔的同行評審,報告和度量,甜蜜的bug跟蹤特性,以及大量的集成:Git,Visual Studio,Team Foundation Server。是的,幾乎集成了所有的東西。它是閉源,但這很酷。前10個用戶可以免費試用,之後你就得讓你的老闆付費了。他們也有一些知名的客戶,如Adobe、甲骨文、惠普、美國銀行等等。

來看看他們的流程圖。來吧,我們都喜歡一個好的流程圖。

IDE中的重量級作品JetBrains推出了Upsource,這是一種多語言代碼審查工具。為什麼通曉多國語言?下面是支持語法高亮顯示的語言列表。不錯,但是COBOL的支持在哪裡呢?

第一件很酷的事情是讓合作變得很輕鬆。只需發送一個URL就可以共享代碼、修訂、擴散、代碼檢查、搜索過濾器、文件,甚至代碼選擇。另外,開發人員可以通過插件直接從IDE中獲得代碼評審。它與GitHub、Jira和其他公司進行了整合,並有一些不錯的分析功能。如果你已經使用了JetBrains IDE,那絕對是值得考慮的。

接下來介紹的是Reviewable,它成功吸引人們的原因不僅僅是因為開源,還因為它的logo是一個帶著單眼鏡的兔子。用他們的話來說,它有「比你可以搖一搖的更多的特性」——一個大膽的聲明,知道那裡不缺少頑強的堅持不懈的人。有幾個問題是:

只看你上次看的時候發生了什麼變化(即使是重新建立的)

立即對文件的任意兩個版本進行比較,在一兩個列中

隱藏虛假的白只、合併或重基delta

跟蹤檢查的文件,未回復/未解決的注釋

注釋映射跨代碼更改,永遠不會消失

實時更新和更多

這款工具有免費版和付費版兩個版本。

最後,我們介紹Gitcolony,用它管理代碼也不算太糟糕(這是他們的原句,不是我說的)。Gitcolony的特色就只有一個,就是它的pull requests功能。你可以「創建一個虛擬pull request,這樣就可以邊寫代碼邊檢查」。

這裡的想法是,如果開發人員只需要評審小部分的代碼,他們的注意力可能會更集中,可以更快的發現問題和bug。「讓程序員檢查10行代碼,他們會發現10個問題。如果讓他們檢查500行,他們會說代碼看起來沒問題」,這句話引自他們的網站。這種說法很有道理。

如果你的項目位於多個代碼庫裡面,那麼這時候就可以體現出它的linked pull requests功能。它可以自動地將來自不同代碼庫的請求鏈接起來,但是與相同的源分支可以在評審後同時合併。其他一些亮點包括與QA的集成,關於團隊性能的度量,等等。

好的,就介紹這些吧。如果你使用了這些工具中的某一種,現在就可以愜意的泡一杯咖啡,然後跟已經非常心煩意亂的項目經理說不用擔心了,我們在周五就可以提供系統,而且是在周五中午。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

九張圖帶你了解全宇宙最神秘的團體——程序員
AI 產學研大集結,2017中國人工智慧大會將於明日正式召開
目前最值得學習的9種前沿的開發語言,可能有一天你會發現……
如何快速全面建立自己的大數據知識體系?
從大學輟學到名企資深開發,犧牲正規教育換取實踐經驗的涅槃

TAG:CSDN |

您可能感興趣

什麼是代碼審查?
開發經理是否應該寫代碼?
提高代碼質量—FindBugs代碼審查工具
程序員該如在低代碼和無代碼開發中抉擇?
蘋果回應 iOS 源代碼泄露:不必擔心,代碼已過時
關於Google發布的JS代碼規範,你需要了解什麼?
Google低代碼工具App Maker正式對外開放,不寫代碼完成開發
Chrome 開發者工具代碼行斷點調試
蘋果沒有放棄Air Power,最新代碼顯示產品仍然在開發中
如何寫最高端的代碼?Facebook教你怎樣用機器學習做代碼搜索工具
SonarQube代碼審核詳細過程
蘋果iBoot源代碼泄露始末:一位普通員工是如何泄露iPhone最機密代碼的?
使用Sonar做團隊代碼規範化審查
如何做人性化的代碼審查?
應蘋果要求 GitHub已清除被泄露的iOS源代碼
相比晶元,它才最要命!Github更新協議:開源代碼需被管制
訓練過GitHub千萬代碼後,微軟自動寫代碼工具提升開發效率
開發一個window操作系統究竟要多少行代碼呢?
iOS開發-代碼混淆
代碼結構及一些代碼規範建議