喔!這SonarQube免費的一定要掃!

By Mike

前言

程式碼對多數工程師而言,是一個如影隨形的事物,對某些人來說甚至是賴以維生,可見程式碼對於工程師的重要性。工程師之於程式碼,如同父母之於小孩,如此重要的東西,須多加關心與照顧,防止程式碼「長歪了」。

若個人開發專案,能清楚掌控程式碼的狀況;若是團隊進行開發,除了每個人的開發風格不同,也可能因缺乏良好的溝通,使程式碼中存在疏漏,導致產品品質低落,甚至可能引發資安事件,因小失大。因此,在開發過程中,檢測程式碼的品質與安全性,便為一項十分重要的工程。

程式碼維護

為了維護程式碼的品質,每個團隊所使用的方法不盡相同,最常見的便是使用Git進行控管,再由人工的方式進行程式碼審查(Code review)。然而,隨著專案的進行,程式碼也越來越多,再加上需要審查的種類成千上萬,光憑人工的方式一一進行檢測,會非常耗費人力與時間。於是我們可以考慮使用自動化工具代替人工審查,藉此省下大量的時間,提升團隊開發的效率,而本次的主角「SonarQube」便是可自動化進行程式碼檢測的工具。

SonarQube

SonarQube是一套開源的自動化程式碼檢測平台,換句話說,它不須付費便可使用,對於需要進行自動檢測卻不想花費大量金錢的人,此項工具是一大利器。以下的特性與功能也使得SonarQube成為多數人愛好的工具:

  • 開源:如上所述,因為其為開源,故可於合理授權範圍內免費使用。
  • 自動化檢測:不須依靠人工審查,可自動判斷程式碼中是否存在問題。
  • 友善的操作介面:SonarQube以網頁方式呈現,無須使用指令便可操作。
  • 支援多種程式語言:可針對多種語言進行檢測,如:Java、C#、Python等。
  • 提供問題資訊與改善建議:所有被檢測出的問題皆附加描述,如問題的原因、可能關聯的漏洞等資訊,並根據問題給予解決與改善的建議。
  • 提供版本控管與程式碼追蹤修訂:SonarQube可針對單一專案進行多次檢測,並記錄修改的部分。
  • 支援團隊協作與人員權限設定:可於多人負責同一專案的情況下進行程式碼檢測,且可設定每個團隊成員使用的功能權限。

除此之外,SonarQube將程式碼中可能潛藏的問題分為3種,Code Smell、Vulnerability及Bug。

  • Code Smell:不影響程式運作,但可能增加程式碼維護困難度的問題。
  • Vulnerability:可能被用於攻擊的漏洞。
  • Bug:可能造成程式崩潰或中斷的問題。

當SonarQube檢測完畢後,每個在程式碼中被檢測出的問題會被分為上述其中一種類型,並將問題依嚴重性分為五種程度。透過這些分類,使用者可迅速地查看程式碼哪個部分存在何種問題,並可根據嚴重性決定修復的優先順序,以提升維護程式碼品質的效率。

結論

SonarQube提供了便利且全面的程式碼檢測功能,能輔助團隊進行品質維護,提高專案進行的功效,對於工程師、專案經理、主管,皆能快速的審視程式碼中潛藏的問題,且不須花費巨額便可使用。

參考資料

  1. SonarQube: Documentation, URL: https://docs.sonarqube.org/latest/
  2. 程式碼品質分析的好用工具 – SonarQube 基本介紹(1),URL: https://dotblogs.com.tw/kirkchen/2016/06/04/sonarqube-introduction
  3. [01]讓團隊彼此知道程式碼走向 – 淺談Code Review的好處及意義篇,URL: https://blog.alantsai.net/posts/2019/05/code-review-what-is-code-review-and-why-we-want-to-do-it

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。