現代軟體越來越強,原始程式碼也越來越龐大,加上需要不斷追趕的時程,每個軟體團隊對於兼顧程式碼品質已經日漸困難。
需求困境
市面上有多種針對原始碼品質做白箱檢測工具軟體,可惜的是都價格不菲。
這張投影片真好用,一次製作常常用到(誤)
替代方案
這種等級的套件,原本我已經沒有奢望找到可用的開源軟體,那知我運氣還真的不錯,就在這個節骨眼上,有個套件不斷改版改到適合我用的程度了。
就是這麼剛好,而且這套軟體同樣有我個人偏好的「美觀介面」與「容易操作」,分享經驗如下。
SonarQube 是一款基於 Java 開發的原始碼檢測與品質管理系統,因著 Java 的關係,Server 與 Client 都是跨平台的。
下載解壓縮後,執行 sonar.sh start 命令將服務運作起來。
打開瀏覽器,輸入 http://ip:9000 即可進入。
強烈提醒:請不要使用 Firefox 瀏覽,會發生一些匪夷所思的事,它浪費了我好幾個夜晚。
透過更新中心,可以快速的安裝需要的功能外掛,系統與外掛升級也是在此簡單點選就可以完成。不過要特別注意外掛的授權,有些是商業套件。
使用者可以自己決定什麼語言要用那些特徵做檢測,內建了非常多的規則,依據需求可以更嚴格或者更寬鬆。
對於各種語言以及品質檢測的分數,可以自訂每一個項目的細節,以做為軟體品直的把關。
基本設定完成後,第二個階段是配置 Client 端使用 Scanner 程式,依據不同的作業系統下載相對應的 Scanner。
Scanner 解開後,需要配置 conf 與 project 裡的設定檔,請參考官網文件。
配置完成後,在想要檢測的專案路徑下,執行 sonar-scanner 即可開始分析專案,並會把結果送到伺服器上。
最重點的時刻來了,所有分析完的結果會用非常直覺的儀表板、圖表、數字呈現。
SonarQube 不僅僅是幫我們找出原始碼的各種問題,還會儘可能的提供我們問題資訊,描述原因,甚至是改善建議,這將為我們節省大量的程式修正時間。
如圖中所述,在一段 HTML 裡它建議我們把 < b > 改為較新的 < strong > 標籤。
最後要介紹的是一種挺酷炫的功能,利用 3D 互動的方式來檢視整個專案的問題面向。
佛心啊!SonarQube!
對於軟體開發團隊來說,大大節省經費,也大大節省時間。
❤❤❤
(那有這麼剛好的啦... 哈哈)
就是這麼剛好,而且這套軟體同樣有我個人偏好的「美觀介面」與「容易操作」,分享經驗如下。
SonarQube 是一款基於 Java 開發的原始碼檢測與品質管理系統,因著 Java 的關係,Server 與 Client 都是跨平台的。
功能簡介:
- 支援多種程式語言
- 檢測安全性、可靠性、重覆性、技術債務、測試覆蓋率等
- 提供問題資訊以及程式碼改善建議
- 具驗證機制,可整合 Github、Gitlab、LDAP、AD 等
- 成熟的更新中心,可方便的升級系統與安裝外掛套件
- 更多...
使用經驗
下載解壓縮後,執行 sonar.sh start 命令將服務運作起來。
Web 功能
打開瀏覽器,輸入 http://ip:9000 即可進入。
強烈提醒:請不要使用 Firefox 瀏覽,會發生一些匪夷所思的事,它浪費了我好幾個夜晚。
透過更新中心,可以快速的安裝需要的功能外掛,系統與外掛升級也是在此簡單點選就可以完成。不過要特別注意外掛的授權,有些是商業套件。
更新中心
使用者可以自己決定什麼語言要用那些特徵做檢測,內建了非常多的規則,依據需求可以更嚴格或者更寬鬆。
代碼規則
對於各種語言以及品質檢測的分數,可以自訂每一個項目的細節,以做為軟體品直的把關。
質量配置
Scanner 功能
基本設定完成後,第二個階段是配置 Client 端使用 Scanner 程式,依據不同的作業系統下載相對應的 Scanner。
- Linux 64bit
https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
- Windows 64bit
https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-windows.zip
- macOS 64bit
https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-macosx.zip
- MSBuild (dotNET 平台檢測)
https://github.com/SonarSource/sonar-scanner-msbuild/releases/download/2.3.2.573/sonar-scanner-msbuild-2.3.2.573.zip
- 如果版本異動,請以這兩個連結為主:
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild
Scanner 解開後,需要配置 conf 與 project 裡的設定檔,請參考官網文件。
- Sonar Scanner 配置說明
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
- Sonar Scanner for MSBuild 配置說明
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild
配置完成後,在想要檢測的專案路徑下,執行 sonar-scanner 即可開始分析專案,並會把結果送到伺服器上。
查看報告
最重點的時刻來了,所有分析完的結果會用非常直覺的儀表板、圖表、數字呈現。
專案總覽
安全性指標
技術債指標
重覆率指標
問題清單
SonarQube 不僅僅是幫我們找出原始碼的各種問題,還會儘可能的提供我們問題資訊,描述原因,甚至是改善建議,這將為我們節省大量的程式修正時間。
如圖中所述,在一段 HTML 裡它建議我們把 < b > 改為較新的 < strong > 標籤。
問題改善建議
最後要介紹的是一種挺酷炫的功能,利用 3D 互動的方式來檢視整個專案的問題面向。
3D檢視模式
心得結論
佛心啊!SonarQube!
對於軟體開發團隊來說,大大節省經費,也大大節省時間。
❤❤❤