1、Sonar是什麼
Sonar是一個代碼質量管理的開源平臺,用於管理源代碼的質量,經過插件形式,能夠支持包括java、C#、JavaScript等二十餘種編程語言的代碼質量管理與檢測。java
Sonar是從七個維度檢測代碼質量,而做爲開發人員至少須要處理前5中代碼質量問題。web
一、不遵循代碼標準數據庫
sonar能夠經過PMD,CheckStyle,Findbugs等代碼規則檢測工具規範代碼編寫編程
二、潛在的缺陷tomcat
sonar能夠經過PMD,CheckStyle,Findbugs等代碼規則檢測工具檢測出潛在的缺陷 服務器
三、糟糕的複雜度分佈架構
文件、類、方法等,若是複雜度太高將難以改變,這會使得開發人員難以理解它們,且沒有自動化的單元測試,對於程序中的任何組件的改變都將可能致使須要全面的迴歸測試編程語言
四、重複工具
顯然程序中包含大量複製粘貼的代碼是質量低下的,sonar能夠展現源碼中重複嚴重的地方單元測試
五、註釋不足或者過多
沒有註釋將使代碼可讀性變差,特別是當不可避免出現人員變更時,程序的可讀性大幅度降低,而過多的註釋又會使得開發人員將獎勵過多的花費在閱讀註釋上,亦違背初衷
六、缺少單元測試
sonar能夠很方便地統計並展現單元測試覆蓋率
七、糟糕的設計
經過sonar能夠找出循環,展現包與包、類與類之間相互依賴關係,能夠檢測自定義的架構規則 經過sonar能夠管理第三方的jar包,能夠利用LCOM4檢測單個任務規則的應用狀況,檢測耦合。
---------------------------------------------- 分割線-------------------------------------------------
2、相關工具
一、sonarqube
sonarqube是sonar的服務端,至關於一個web服務器,用來發布應用,在線瀏覽、配置分析等。目前官網最近版本爲sonarqube-6.3。sonarqube以下所示。怎麼樣?有沒有很面熟的感受?是否是和tomcat特別像呢?
下面簡單說一下每一個文件夾的做用
bin:sonarqube運行命令文件夾
conf:sonarqube配置文件夾
data:嵌入式數據庫的數據(H2數據庫引擎),建議只用於測試和演示
extensions:sonarqube的插件等存放文件夾
lib:sonarqube存放的運行庫文件夾(jar)
logs:sonarqube日誌文件夾
temp:sonarqube臨時文件夾
web:sonarqube系統UI界面文件夾
二、sonarqube-scanner
sonarqube-scanner至關於sonar客戶端,目前最新版本爲sonar-scanner3.0。sonarqube-scanner以下圖所示。每一個文件夾的做用和sonar相似,具體不在贅述。
三、sonarlint
SonarLint至關於sonar的一個插件,它及時反饋給開發人員新的bug和質量問題。是經常使用IDE的一個擴展。如Eclipse、VS、IntelliJIDEA。
3、總結
Sonar是基於Java開發的,所以運行Sonar天然須要JDK。Sonar5.6以上版本須要JDK1.8。
關於sonar的基礎理論知識暫時先介紹到這裏,若有錯誤或不足之處,歡迎你們及時指正,不勝感激。預知sonar實戰,且聽下回分解。
---------------------
摘自:https://blog.csdn.net/qq_26545305/article/details/70224916