1、為什么要用sonarQube?
在我們的日常軟件開發工作當中,隨着項目時間變長,開發人員編寫的代碼量也會越來越多。
長此以往,會面臨代碼量龐大,卻無法橫量整體代碼質量?若是要優化,也不知道如何優化。
針對這些問題,出現了各種各樣的工具,比如:
java語言的Checkstyle,FindBugs,PMD,Jtest等,幫助檢測代碼編寫規范上存在的問題和漏洞
python語言的Pyflakes,Pylint,pep8等。
C#語言的FxCop、StyleCop等。
通過這些工具掃描的結果分析后,根據結果來優化代碼問題,以提高代碼質量。
以上這些工具都是 代碼的靜態掃描分析 工具。
所謂靜態代碼分析,就是針對開發人員編寫的源代碼,在不運行的情況下,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷。
在單獨使用以上這些工具時,我們會面臨:
1、需要一個平台,能夠匯總呈現不同語言的項目、不同工具的掃描結果
2、需要一個平台,可以友好的呈現或者追溯,一段時間內每一次掃描的結果的差異。
sonarQube就是這樣的一個平台,
1)支持多種語言的靜態代碼掃描。
2)多維護呈現項目代碼的質量狀態。
2、sonarQube是什么?
1、代碼質量和安全掃描和分析平台。
2、多維度分析代碼:代碼量、安全隱患、編寫規范隱患、重復度、復雜度、代碼增量、測試覆蓋率等。
3、支持25+編程語言的代碼掃描和分析,包含java\python\C#\javascript\go\C++等。
4、涵蓋了編程語言的靜態掃描規則: 代碼編寫規范+安全規范。
5、能夠與代碼編輯器、CI/CD平台完美集成。
6、能夠與SCM集成,可以直接在平台上看到代碼問題是由哪位開發人員提交。
7、幫助程序猿寫出更干凈、更安全的代碼。
靜態掃描主要針對開發人員編寫的源代碼。
通過定義好的 代碼質量和安全規則,對開發人員編寫的代碼進行掃描和分析。
將分析的結果多維護的呈現出來,以方便開發人員進行代碼的優化和規范編寫。
3、sonarQube如何工作?
sonar靜態代碼掃描由2部分組成:sonarQube平台,sonar-scanner掃描器。
sonarQube: web界面管理平台。
1)展示所有的項目代碼的質量數據。
2)配置質量規則、管理項目、配置通知、配置SCM等。
sonarScanner: 代碼掃描工具。
專門用來掃描和分析項目代碼。支持20+語言。
代碼掃描和分析完成之后,會將掃描結果存儲到數據庫當中,在sonarQube平台可以看到掃描數據。
sonarQube和sonarScanner之間的關系: