<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這樣Review代碼牛逼啦!

          共 2017字,需瀏覽 5分鐘

           ·

          2020-08-15 16:51

          一個(gè)對項(xiàng)目負(fù)責(zé)的團(tuán)隊(duì)代碼質(zhì)量檢查是必不可少的,有條件的團(tuán)隊(duì)經(jīng)常有代碼review習(xí)慣,這樣可以使技術(shù)團(tuán)隊(duì)共同進(jìn)步,但是一個(gè)龐大的工程做代碼review其實(shí)是很麻煩的,所以就催生了很多的工具,今天我們就來通過工具來對代碼進(jìn)行掃描,通過發(fā)現(xiàn)問題并改進(jìn)問題,使我們的項(xiàng)目代碼更簡潔,修復(fù)隱藏bug。

          什么是Sonarqube

          Sonarqube 是一個(gè)用于代碼質(zhì)量管理的開放平臺(tái)。通過插件機(jī)制,Sonarqube 可以集成不同的測試工具,代碼分析工具,以及持續(xù)集成工具。

          在對其他工具的支持方面,Sonarqube 不僅提供了對 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 這些工具里聯(lián)機(jī)查看結(jié)果;同時(shí) Sonarqube 還對大量的持續(xù)集成工具提供了接口支持,可以很方便地在持續(xù)集成中使用 Sonar。

          簡單來說,Sonarqube就是一個(gè)代碼質(zhì)量檢測工具,可以通過搭建服務(wù)端和使用客戶端來對代碼進(jìn)行檢測,我們今天就來上手試試吧。

          搭建Sonarqube服務(wù)器

          因?yàn)樾【幁h(huán)境是mac,還是選擇使用docker來搭建服務(wù)器環(huán)境把。

          首先查找鏡像

          docker?search?sonarqube

          然后pull鏡像

          docker?pull?sonarqube

          如果使用傳統(tǒng)的搭建還得創(chuàng)建sonarqube需要的對應(yīng)數(shù)據(jù)庫的腳本再進(jìn)行關(guān)聯(lián),但是使用鏡像的話這些都內(nèi)嵌了。

          好了開始通過鏡像啟動(dòng)容器吧。

          docker?run?-d?--name?sonarqube?-p?9000:9000?-p?9092:9092?sonarqube

          鏡像啟動(dòng)后就可以訪問服務(wù)頁面了。

          訪問地址:http://localhost:9000

          點(diǎn)擊左側(cè)的Log in登錄,默認(rèn)的登錄用戶名密碼都是admin

          這樣子服務(wù)端就安裝好了

          客戶端使用

          第一種姿勢 純idea插件查看

          因?yàn)槟壳皣鴥?nèi)大部分程序員都轉(zhuǎn)向Idea了,所以我們使用Idea來作為客戶端進(jìn)行項(xiàng)目代碼檢測。

          首先就是插件的安裝。如圖所示,小白都看的懂,安裝插件SonarLint并重啟IDE

          重啟之后就要配置客戶端連接的服務(wù)器了,服務(wù)器地址和賬號(hào)密碼填寫我們之前本地搭建的信息

          點(diǎn)擊Next的時(shí)候會(huì)需要?jiǎng)?chuàng)建Token

          點(diǎn)擊Create Token跳轉(zhuǎn)到我們生成Token的網(wǎng)頁,這里我們輸入admin創(chuàng)建Token

          復(fù)制生成的Token到idea里面,填寫好即可

          驗(yàn)證和使用

          接下來就是驗(yàn)證使用了。我們在項(xiàng)目代碼目錄上右鍵

          會(huì)有SonarLint這個(gè)選項(xiàng),點(diǎn)擊第一個(gè)

          可以看到代碼檢測愉快的跑起來了。

          掃描結(jié)束以后,可以看到,很多不規(guī)范的代碼都被掃出來了。

          隨便點(diǎn)開一個(gè),比如說這個(gè)空方法

          并且右側(cè)給出了對應(yīng)的修復(fù)示例參考

          但不懂英文?沒關(guān)系啊 ,姿勢可不只有這一種!??!

          第二種姿勢

          那么這次我們使用管理臺(tái)+maven來看如何牛逼的使用它,

          登錄管理臺(tái),點(diǎn)擊Markerplace模塊,安裝中文包

          安裝完成重啟服務(wù)

          再次登錄,熟悉的中文是不是回來了呀!

          然后在項(xiàng)目里面加入以下maven依賴


          ??org.sonarsource.scanner.maven
          ??sonar-maven-plugin
          ??3.7.0.1746

          展開項(xiàng)目的Maven選項(xiàng),雙擊運(yùn)行,執(zhí)行完畢后就可以登錄管理臺(tái)查看了。

          打開管理臺(tái),你會(huì)發(fā)現(xiàn)產(chǎn)生了一個(gè)和你項(xiàng)目名一樣的項(xiàng)目,并且各種代碼質(zhì)量指標(biāo)都標(biāo)注的清清楚楚!!

          我們點(diǎn)進(jìn)去,點(diǎn)開bug選項(xiàng)隨便一處,查看Bug

          果然掃出來了一處可能出現(xiàn)bug的代碼,假設(shè)Get這個(gè)枚舉對象為null的話,下面的對象getId()方法肯定會(huì)出現(xiàn)空指針了。

          我們再導(dǎo)入一個(gè)一個(gè)項(xiàng)目,寫幾個(gè)不規(guī)范的代碼,看看能不能掃出來。

          果然是掃到了有異味的代碼。。。比如方法不規(guī)范拉,代碼里輸出日志不規(guī)范 了~

          這里就不繼續(xù)陪大家看bug和異味的代碼了呀~

          檢測出了代碼規(guī)范問題和bug漏洞咋辦,改唄~

          改完以后就可以早點(diǎn)下班了~~

          各位老鐵有空可以去嘗試玩一玩啊,據(jù)說經(jīng)常做代碼review的程序員下班都比普通程序員要早。

          結(jié)尾

          寫到結(jié)尾了,順便提一句,有人說為什么不用類似阿里巴巴規(guī)約掃描插件,其實(shí)在項(xiàng)目開發(fā)中也有在用,但是確實(shí)只能測試出來一部分阿里定義出來的代碼不規(guī)范問題,像漏洞和bug和這個(gè)就更不能比了,所以千萬別有杠精來跟我較勁比較了,我只能說,都用吧??!

          寫到這里了,點(diǎn)贊轉(zhuǎn)發(fā)三連有么,為了你能早點(diǎn)下班~

          - END -

          推薦閱讀:

          代碼優(yōu)化實(shí)戰(zhàn):我又優(yōu)化了一百個(gè)if else!
          阿里內(nèi)部員工,排查Java問題常用的工具單
          優(yōu)秀的 Java 項(xiàng)目,代碼都是如何分層的?

          點(diǎn)擊閱讀原文,領(lǐng)取2020Java電子書資料(持續(xù)更新

          瀏覽 40
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  清纯唯美亚洲第一页麻豆豆花 | 中文字幕一区在线观看视频 | 蜜乳在线网站 | 最新流出毛片视频 | 18禁成人免费网站 |