成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

前言

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

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

什么是 SonarQube

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

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

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

由于 SonarQube 提供太多種服務(wù)了,這里只列出幾點(diǎn)個(gè)人覺得最值得提出來與大家分享的內(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 即可開啟 SonarQube 的網(wǎng)頁,預(yù)設(shè)的帳號(hào)及密碼都是 admin ,輸入后即可在 local 端開始使用 SonarQube 提供的檢測(cè)服務(wù)嘍。

圖片

SonarQube 操作說明

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

圖片

我們也可以看到 SonarQube 整合了非常多用來創(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è)的代碼是屬于哪種語言以及目前電腦的 OS,都選擇完后可以去官網(wǎng)上下載最重要的分析工具 SonarScanner,這套 scanner 就是負(fù)責(zé)檢測(cè)代碼的工具。

圖片

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

圖片

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

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

圖片

但假如代碼有潛在的問題,這時(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 可是我這邊卻寫了小于 0,所以這個(gè) if 判斷條件永遠(yuǎn)都不會(huì)通過。

圖片

但我們回到代碼后可以發(fā)現(xiàn)即便我們有安裝 linter 也不會(huì)檢查出這種看起來就是有問題的寫法,因?yàn)?linter 通常都是在檢查語法上的錯(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ì)介紹,整體寫法會(huì)像下圖這樣:

圖片

總結(jié)

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

作者:Andy Chen

譯者:小智  

來源: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é)任編輯:武曉燕 來源: 大遷世界
相關(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 漸變

2021-01-20 13:15:09

HTTPS加密網(wǎng)址

2024-07-17 10:30:00

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開源追蹤代碼

2021-02-25 07:10:57

SonarQube代碼掃描代碼基線

2020-11-27 08:00:00

開發(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

緩存雪崩擊穿

2018-01-02 13:30:04

代碼質(zhì)量代碼預(yù)言
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 日日草夜夜草 | 日韩一区欧美一区 | 99re热精品视频 | 伊人91在线 | 伊人网综合在线观看 | 亚洲精品一 | 精品乱码一区二区三四区 | 亚洲精品国产成人 | 午夜精品久久久久久久久久久久 | 久热免费 | 国产精品久久久久久久久图文区 | 欧美一级视频 | 毛片a区 | 成人免费av| 性生生活大片免费看视频 | 日韩在线观看一区 | 国产精品一区二区免费 | 欧美激情综合 | 欧美日韩成人网 | 国产精品视频二区三区 | 亚洲精品一区二区三区在线观看 | 精品96久久久久久中文字幕无 | 亚洲精品自在在线观看 | 日韩欧美日韩在线 | 中文字幕 国产精品 | 美女黄视频网站 | 亚洲自拍偷拍av | 综合精品久久久 | 久久久日韩精品一区二区三区 | 亚洲欧美在线观看 | 亚洲一区二区三区欧美 | 国产精品成人一区二区三区吃奶 | 毛片一级片 | 午夜视频在线观看一区二区 | 欧美一区二区三区精品 | 中文字幕精品一区久久久久 | 亚洲三区视频 | 久久国产精品视频观看 | 亚洲第一成人av | 欧美999 | 夜夜艹天天干 |