自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

原來(lái)代碼的質(zhì)量也可以被檢測(cè):初探 SonarQube

開(kāi)發(fā) 前端
SonarQube 是一套基于 Java 開(kāi)發(fā)的代碼檢測(cè)以及質(zhì)量管理平臺(tái),由于這套工具是用 Java 開(kāi)發(fā)的原因,所以大家要先記得去安裝 **Java Development Kit(JDK)**,這樣后續(xù)才能順利的啟動(dòng) SonarQube。

前言

最近在自學(xué) DevOps 的過(guò)程中,發(fā)現(xiàn)除了要了解基本的 CI/CD 流程外,更重要的是了解可以利用哪些工具來(lái)輔助整個(gè) CI 的流程,今天來(lái)介紹一個(gè)好用的代碼檢測(cè)平臺(tái):SonarQube。

雖然在現(xiàn)今的開(kāi)發(fā)很多時(shí)候都會(huì)藉由 code review 搭配各式的 linter 進(jìn)行開(kāi)發(fā),但百密總有一疏,這時(shí)候就可以透過(guò) SonarQube 幫助開(kāi)發(fā)者檢查一些潛在的 bug,這些 bug 有可能在開(kāi)發(fā)時(shí) linter 并沒(méi)有報(bào)錯(cuò),而且在 code review 時(shí)可能也不小心漏看了,假如可以在 CI 的流程中加上 SonarQube 來(lái)掃描整個(gè) codebase,這時(shí)候就可以讓整個(gè)項(xiàng)目的代碼有更高的品質(zhì)。

什么是 SonarQube

SonarQube 是一套基于 Java 開(kāi)發(fā)的代碼檢測(cè)以及質(zhì)量管理平臺(tái),由于這套工具是用 Java 開(kāi)發(fā)的原因,所以大家要先記得去安裝 **Java Development Kit(JDK)**,這樣后續(xù)才能順利的啟動(dòng) SonarQube。

SonarQube 也提供了不少的服務(wù)像是:

  • 網(wǎng)頁(yè)化操作
  • 支持非常多種程序語(yǔ)言的分析檢測(cè)
  • 提供代碼重復(fù)性、潛在 bug、測(cè)試覆蓋率等等相關(guān)報(bào)告
  • 提供自動(dòng)化分析并且結(jié)合主流的 CI 工具
  • 提供代碼改善建議
  • 整合 JIRA、Mantis、LDAP、Fortify 等外部工具
  • 提供歷史紀(jì)錄以利于后續(xù)追蹤

由于 SonarQube 提供太多種服務(wù)了,這里只列出幾點(diǎn)個(gè)人覺(jué)得最值得提出來(lái)與大家分享的內(nèi)容,有興趣的讀者可以再自行去官網(wǎng)上面進(jìn)行相關(guān)的資料閱讀。

啟動(dòng) SonarQube

由于我是使用 mac 系統(tǒng),因此這邊以 mac 的操作方式進(jìn)行介紹,首先可以在終端機(jī)中進(jìn)入 /bin/macosx-unversal-64 的文件夾,并下 ./sonar.sh start 這個(gè)指令啟動(dòng) SonarQube 的服務(wù)。

圖片

啟動(dòng)服務(wù)后可以在瀏覽器打上 localhost:9000 即可開(kāi)啟 SonarQube 的網(wǎng)頁(yè),預(yù)設(shè)的帳號(hào)及密碼都是 admin ,輸入后即可在 local 端開(kāi)始使用 SonarQube 提供的檢測(cè)服務(wù)嘍。

圖片

SonarQube 操作說(shuō)明

登入后就可以開(kāi)始進(jìn)行 Project 創(chuàng)建了,這邊的 Project 主要是方便開(kāi)發(fā)者可以進(jìn)行項(xiàng)目品質(zhì)的控管,創(chuàng)立好 Project 才可以開(kāi)始針對(duì)想要檢測(cè)的 repository 進(jìn)行檢測(cè)。

圖片

我們也可以看到 SonarQube 整合了非常多用來(lái)創(chuàng)建項(xiàng)目的主流工具例如 GitHub、Jira 等等,假如讀者本身是有在使用這些工具進(jìn)行項(xiàng)目的管理也可以直接整合現(xiàn)有的架構(gòu),這邊為了方便介紹所以選擇手動(dòng)創(chuàng)建 Project。

圖片

建立好 Project 后可以看到 SonarQube 也支持許多主流平臺(tái)的 CI 機(jī)制,這里也是為了方便介紹所以選擇手動(dòng)測(cè)試 local repository。

圖片

想要進(jìn)行分析檢測(cè)之前還需要產(chǎn)生一組 private token,利用這組 token 我們?cè)谥筮M(jìn)行檢測(cè)時(shí)可以確保檢測(cè)的結(jié)果會(huì)擺在這個(gè) project 內(nèi)。

圖片

之后就可以選擇要檢測(cè)的代碼是屬于哪種語(yǔ)言以及目前電腦的 OS,都選擇完后可以去官網(wǎng)上下載最重要的分析工具 SonarScanner,這套 scanner 就是負(fù)責(zé)檢測(cè)代碼的工具。

圖片

下載完后就可以複制下方的指令進(jìn)行代碼的檢測(cè)啦!

圖片

SonarScanner 檢測(cè)結(jié)果

在上面的步驟檢測(cè)完后,我們回到 SonarQube 的平臺(tái)就可以看到剛剛建立的 project 已經(jīng)有了初步的檢測(cè)報(bào)告,假如代碼都沒(méi)有什麼潛在的問(wèn)題就可以看到報(bào)告會(huì)是綠色 Passed 的狀態(tài)。

圖片

但假如代碼有潛在的問(wèn)題,這時(shí)候報(bào)告就會(huì)出現(xiàn)紅色的 Failed 并且指出有幾個(gè) bug 產(chǎn)生。

圖片

接著點(diǎn)擊 issues tab 就可以看到目前潛在的 bug 是從哪個(gè)檔案的哪一行中產(chǎn)生。

圖片

再點(diǎn)進(jìn)去后就會(huì)看到潛在的 bug 的錯(cuò)誤訊息,我們可以發(fā)現(xiàn) array 的長(zhǎng)度一定會(huì)是大于等于 0 可是我這邊卻寫(xiě)了小于 0,所以這個(gè) if 判斷條件永遠(yuǎn)都不會(huì)通過(guò)。

圖片

但我們回到代碼后可以發(fā)現(xiàn)即便我們有安裝 linter 也不會(huì)檢查出這種看起來(lái)就是有問(wèn)題的寫(xiě)法,因?yàn)?linter 通常都是在檢查語(yǔ)法上的錯(cuò)誤,這時(shí)候 SonarScanner 就幫助了我們可以進(jìn)行更深入的檢查。

圖片

SonarScanner 配置

其實(shí) SonarScanner 也可以進(jìn)行一些自定義的配置,這時(shí)候就需要建立一個(gè)叫 sonar-project.properties 的文件,這份文件裡面可以設(shè)定一些 SonarScanner 提供的 analysis parameter,由于這些配置參數(shù)實(shí)在是太多了,所以這里不會(huì)一一介紹,有興趣的讀者可以參考官網(wǎng),裡面有所有參數(shù)的詳細(xì)介紹,整體寫(xiě)法會(huì)像下圖這樣:

圖片

總結(jié)

這次介紹了 SonarQube 這套代碼檢測(cè)平臺(tái),由于筆者本身是一位前端工程師,因此只會(huì)利用 ESLint 或者 TSLint 進(jìn)代碼但程式碼還會(huì)有一些潛在的 bug 可能是這些 linter 無(wú)法檢查出來(lái)的,這時(shí)候 SonarQube 就起了一個(gè)很大的作用,幫助我們?cè)陂_(kāi)發(fā)時(shí)可以進(jìn)行更深入的解析,假如讀者未來(lái)有要做一些 CI 流程的話(huà),不妨也可以把 SonarQube 考慮進(jìn)去喔。

作者:Andy Chen

譯者:小智  

來(lái)源:medium

原文:https://medium.com/starbugs/%E5%8E%9F%E4%BE%86%E7%A8%8B%E5%BC%8F%E7%A2%BC%E5%93%81%E8%B3%AA%E4%B9%9F%E5%8F%AF%E4%BB%A5%E8%A2%AB%E6%AA%A2%E6%B8%AC-%E5%88%9D%E6%8E%A2-sonarqube-14e99687806e

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2022-02-17 09:41:04

bitnamidockersonarqube

2023-04-20 08:01:13

2010-08-02 13:55:20

2010-08-11 10:58:06

AndroidAndroid NDK

2015-09-07 10:04:11

數(shù)據(jù)中心數(shù)據(jù)中心優(yōu)化

2023-07-06 08:22:49

SonarQubeToken

2023-07-17 09:19:20

CSSCSS 漸變

2024-07-17 10:30:00

2021-01-20 13:15:09

HTTPS加密網(wǎng)址

2023-10-12 09:13:14

2011-05-12 10:49:39

2024-09-24 17:12:47

2018-11-14 10:20:15

SonarQube開(kāi)源追蹤代碼

2021-02-25 07:10:57

SonarQube代碼掃描代碼基線(xiàn)

2020-11-27 08:00:00

開(kāi)發(fā)分析工具web

2024-06-28 09:20:29

2009-03-11 14:42:57

面試求職案例

2020-06-23 08:10:30

Spring容器權(quán)限

2020-10-23 10:46:03

緩存雪崩擊穿

2019-06-28 12:34:34

Python情感分析NLP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)