利用SonarQube構建代碼質量管理平臺

先來一堆廢話

在創業初期有著兩個“經驗豐富的前后端”,可以說那個時候代碼質量管理呈野蠻生長狀態,彼此都非常信任,在追求速度的同時更看重的是最終的結果,至于代碼的壞味道也只能聞一聞就罷了。而今(還是創業初期),團隊成員在不斷的壯大,每個人的代碼質量參差不齊,代碼質量管理勢在必行。由于時間關系,最初考慮通過人工的方式Review核心代碼,對于非核心代碼就不用花太多時間去check,直到發現了Ta,完全符合我的想象氣質高貴寧靜,自動幫我解決以上問題。

簡介

Sonar是一個代碼質量管理的開源工具,它通過插件的形式能夠識別常見的20+種(C#,Javascript等)編程語言代碼質量問題。而Sonar可以幫你分析出以下代碼質量問題:

1.不遵循代碼標準

2.潛在的缺陷

3.代碼重復

4.注釋率不足或過高

5.糟糕的復雜度分布

6.缺乏單元測試

7.糟糕的設計

準備工作

操作系統windows x64

下載JDK(JAVA的開發工具包)

下載SonarQube(很重要滴~~~)

下載SonarQube Scanner(執行代碼分析的工具)

MySQL數據庫

安裝

1.下載后解壓,并進入D:\setup\sonarqube-6.1\bin\windows-x86-64(對應操作系統)\。注意D:\setup是我的安裝目錄


2.雙擊“StartSonar.bat”就可以啟動SonarQube服務了。

3.打開瀏覽器輸入:http://localhost:9000/,出現下圖則表明安裝成功!

配置

1.在MySQL中新建數據庫sonar(名字可以隨便取),我是通過小貓咪Navicat連接。

2.打開對應目錄文件sonar.properties(注:D:\setup是我的安裝目錄)

3.將你自己的MySQL信息替換

4.這個時候重啟SonarQube服務,就可以正常登錄,同時你可以在數據庫中看到以下數據表被自動創建。

5.插件安裝。SonarQube后臺提供了豐富的插件支持,英語不好的我就需要安裝Chinese Pack,這個是漢化后的效果,安裝完插件后重啟服務即可看到漢化后的效果。

6.打開剛剛下載的SonarQube Scanner文件夾,打開D:\setup\sonar-scanner-2.5\conf\sonar-runner.properties,將對應的信息修改。

7.配置環境變量

8.將SONAR_RUNNER_HOME配置到PATH,在末尾加上%SONAR_RUNNER_HOME%\bin;

9.打開cmd,輸入sonar-runner -version則表明配置成功。

讓它跑起來

1.在項目根目錄新建文件sonar-project.properties,打開文件將以下內容復制到文件中,并修改projectName和sources(修改成你的根目錄并將“\”轉換成“/”)。

# must be unique in a given SonarQube instance

sonar.projectKey=my:project

# this is the name displayed in the SonarQube UI

sonar.projectName=fachan

sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.

# Since SonarQube 4.2, this property is optional if sonar.modules is set.

# If not set, SonarQube starts looking for source code from the directory containing

# the sonar-project.properties file.

sonar.sources=E:/01fachan

# Encoding of the source code. Default is default system encoding

#sonar.sourceEncoding=UTF-8

2.打開cmd進入項目根目錄,輸入:sonar-runner就開始進行代碼分析,跑完之后則會顯示成功信息。

3.最后我們進入SonarQube可以看到下圖:bug、漏洞、壞味道、重復代碼等數據都很清晰的展示出來。

4.這是檢查出來的問題,大家可以看看。是不是很方便啊~~~

補充

其實這些所謂的自動化工具和現在很火的人工智能領域一樣,都沒有達到通過機器完全替代人的盛景。自動化工具更多的是在輔助我們提高工作效率,減少人為的失誤,而產品中的核心功能和業務邏輯還得需要項目管理者用心的Review,只有兩者很好的配合才能帶來更大的提高和飛躍。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容