SonarQube,一款東坡小編特意搜集而來(lái)的管理代碼質(zhì)量的平臺(tái)軟件。你寫的代碼怎么樣,水平如何,都可以用這款SonarQube來(lái)檢測(cè)。
SonarQube簡(jiǎn)介
Sonar是一個(gè)用于代碼質(zhì)量管理的平臺(tái),用于管理源代碼的質(zhì)量,可以從七個(gè)維度檢測(cè)代碼質(zhì)量
通過(guò)插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語(yǔ)言的代碼質(zhì)量管理與檢測(cè)
sonarQube能帶來(lái)什么
Developers' Seven Deadly Sins
1、糟糕的復(fù)雜度分布
文件、類、方法等,如果復(fù)雜度過(guò)高將難以改變,這會(huì)使得開發(fā)人員難以理解它們,
且如果沒(méi)有自動(dòng)化的單元測(cè)試,對(duì)于程序中的任何組件的改變都將可能導(dǎo)致需要全面的回歸測(cè)試
2、重復(fù)
顯然程序中包含大量復(fù)制粘貼的代碼是質(zhì)量低下的
sonar可以展示源碼中重復(fù)嚴(yán)重的地方
3、缺乏單元測(cè)試
sonar可以很方便地統(tǒng)計(jì)并展示單元測(cè)試覆蓋率
4、沒(méi)有代碼標(biāo)準(zhǔn)
sonar可以通過(guò)PMD,CheckStyle,Findbugs等等代碼規(guī)則檢測(cè)工具規(guī)范代碼編寫
5、沒(méi)有足夠的或者過(guò)多的注釋
沒(méi)有注釋將使代碼可讀性變差,特別是當(dāng)不可避免地出現(xiàn)人員變動(dòng)時(shí),程序的可讀性將大幅下降
而過(guò)多的注釋又會(huì)使得開發(fā)人員將精力過(guò)多地花費(fèi)在閱讀注釋上,亦違背初衷
6、潛在的bug
sonar可以通過(guò)PMD,CheckStyle,Findbugs等等代碼規(guī)則檢測(cè)工具檢測(cè)出潛在的bug
7、糟糕的設(shè)計(jì)(原文Spaghetti Design,意大利面式設(shè)計(jì))
通過(guò)sonar可以找出循環(huán),展示包與包、類與類之間的相互依賴關(guān)系
可以檢測(cè)自定義的架構(gòu)規(guī)則
通過(guò)sonar可以管理第三方的jar包
可以利用LCOM4檢測(cè)單個(gè)任務(wù)規(guī)則的應(yīng)用情況
檢測(cè)耦合
通過(guò)sonar可以有效檢測(cè)以上在程序開發(fā)過(guò)程中的七大問(wèn)題
SonarQube主要特點(diǎn)
代碼覆蓋:通過(guò)單元測(cè)試,將會(huì)顯示哪行代碼被選中
改善編碼規(guī)則
搜尋編碼規(guī)則:按照名字,插件,激活級(jí)別和類別進(jìn)行查詢
項(xiàng)目搜尋:按照項(xiàng)目的名字進(jìn)行查詢
對(duì)比數(shù)據(jù):比較同一張表中的任何測(cè)量的趨勢(shì)
SonarQube安裝
預(yù)置條件
1、已安裝JAVA環(huán)境
2、已安裝有MySQL數(shù)據(jù)庫(kù)
中文補(bǔ)丁包下載:http://docs.codehaus.org/display/SONAR/Chinese+Pack
1、數(shù)據(jù)庫(kù)配置
進(jìn)入數(shù)據(jù)庫(kù)命令
#mysql -u root -p
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
2、安裝sonar與sonar-runner
將下載的sonar-3.7.zip包解壓至Linux某路徑如/usr/local
將下載的sonar-runner-dist-2.3.zip包解壓某路徑/usr/local
添加SONAR_HOME、SONAR_RUNNER_HOME環(huán)境變量,并將SONAR_RUNNER_HOME加入PATH
修改sonar配置文件
編輯<install_directory>/conf/sonar.properties文件,配置數(shù)據(jù)庫(kù)設(shè)置,默認(rèn)已經(jīng)提供了各類數(shù)據(jù)庫(kù)的支持
這里使用mysql,因此取消mysql模塊的注釋
#vi sonar.properties
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版