<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>

          代碼總是被嫌棄寫的太爛?裝上這個(gè)IDEA插件再試試!

          共 2106字,需瀏覽 5分鐘

           ·

          2021-11-21 02:03

          來(lái)源:cnblogs.com/cjsblog/p/10735800.html

          SonarLint(Sonar) 代碼質(zhì)量管理

          Sonar是一個(gè)用于代碼質(zhì)量管理的開(kāi)源平臺(tái),用于管理源代碼的質(zhì)量 通過(guò)插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語(yǔ)言的代碼質(zhì)量管理與檢測(cè)

          Sonar可以從以下七個(gè)維度檢測(cè)代碼質(zhì)量,而作為開(kāi)發(fā)人員至少需要處理前5種代碼質(zhì)量問(wèn)題

          1、不遵循代碼標(biāo)準(zhǔn) sonar可以通過(guò)PMD,CheckStyle,Findbugs等等代碼規(guī)則檢測(cè)工具規(guī)范代碼編寫

          2、潛在的缺陷 sonar可以通過(guò)PMD,CheckStyle,Findbugs等等代碼規(guī)則檢測(cè)工具檢測(cè)出潛在的缺陷

          3、糟糕的復(fù)雜度分布 文件、類、方法等,如果復(fù)雜度過(guò)高將難以改變,這會(huì)使得開(kāi)發(fā)人員難以理解它們 且如果沒(méi)有自動(dòng)化的單元測(cè)試,對(duì)于程序中的任何組件的改變都將可能導(dǎo)致需要全面的回歸測(cè)試

          4、重復(fù) 顯然程序中包含大量復(fù)制粘貼的代碼是質(zhì)量低下的,sonar可以展示源碼中重復(fù)嚴(yán)重的地方

          5、注釋不足或者過(guò)多 沒(méi)有注釋將使代碼可讀性變差,特別是當(dāng)不可避免地出現(xiàn)人員變動(dòng)時(shí),程序的可讀性將大幅下降 而過(guò)多的注釋又會(huì)使得開(kāi)發(fā)人員將精力過(guò)多地花費(fèi)在閱讀注釋上,亦違背初衷

          6、缺乏單元測(cè)試 sonar可以很方便地統(tǒng)計(jì)并展示單元測(cè)試覆蓋率

          7、糟糕的設(shè)計(jì) 通過(guò)sonar可以找出循環(huán),展示包與包、類與類之間相互依賴關(guān)系,可以檢測(cè)自定義的架構(gòu)規(guī)則 通過(guò)sonar可以管理第三方的jar包,可以利用LCOM4檢測(cè)單個(gè)任務(wù)規(guī)則的應(yīng)用情況, 檢測(cè)耦合。

          1. SonarLint

          SonarLint是一個(gè)代碼質(zhì)量檢測(cè)插件,可以幫助我們檢測(cè)出代碼中的壞味道



          下載與安裝



          在需要檢測(cè)的單個(gè)文件或者單個(gè)項(xiàng)目上右鍵 --> Analyze --> Analyze with SonarLint

          或者選中文件或目錄,點(diǎn)擊菜單欄 Analyze --> Analyze with SonarLint



          我們還可以禁用某些規(guī)則



          如果需要同步自定義的規(guī)則時(shí),可以綁定到SonarQube



          查看檢測(cè)的結(jié)果



          對(duì)于代碼中的警告我們不能視而不見(jiàn)



          有了代碼質(zhì)量檢測(cè)工具以后,在一定程度上可以保證代碼的質(zhì)量

          對(duì)于每一個(gè)問(wèn)題,SonarLint都給出了示例,還有相應(yīng)的解決方案,教我們?cè)趺葱薷模瑯O大的方便了我們的開(kāi)發(fā)

          比如,對(duì)于日期類型盡量用LocalDate、LocalTime、LocalDateTime,還有重復(fù)代碼、潛在的空指針異常、循環(huán)嵌套等等問(wèn)題

          有了代碼規(guī)范與質(zhì)量檢測(cè)工具以后,很多東西就可以量化 了,比如bug率、代碼重復(fù)率等,還可以自定義各種指標(biāo),方便管理人員查看

          為此,我們需要一個(gè)平臺(tái)來(lái)記錄每次檢測(cè)分析的結(jié)果,這樣就可以進(jìn)行分析和統(tǒng)計(jì),并且可以直觀的看到這一切

          于是,SonarQube 閃亮登場(chǎng)!

          2. SonarQube

          SonarQube是一個(gè)開(kāi)源的代碼質(zhì)量管理平臺(tái)



          解壓&本地啟動(dòng)

          https://docs.sonarqube.org/latest/setup/get-started-2-minutes/

          unzip?sonarqube-7.7.zip
          cd?sonarqube-7.7
          bin/[OS]/sonar.sh?consol
          啟動(dòng)成功后,訪問(wèn) http://localhost:9000 用管理員賬號(hào)(admin/admin)登錄
          接下來(lái),為了把檢測(cè)的結(jié)果傳到服務(wù)器,我們需要配置一個(gè)Scanner
          https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven
          這里我在項(xiàng)目中添加 sonar-maven-plugin 插件
          <build>
          ????<plugins>
          ????????<plugin>
          ????????????<groupId>org.sonarsource.scanner.mavengroupId>

          ????????????<artifactId>sonar-maven-pluginartifactId>
          ????????????<version>3.6.0.1398version>
          ????????plugin>
          ????plugins>
          build>
          命令行執(zhí)行:mvn clean compile sonar:sonar
          成功后,可以在控制臺(tái)中看到這樣的輸出
          再次刷新 http://localhost:9000/ 會(huì)看到跟剛才不一樣了
          以上只是本地演示,在正式環(huán)境中這些數(shù)據(jù)當(dāng)然要保存到數(shù)據(jù)庫(kù)中,具體安裝就不演示了,下面是文檔
          https://docs.sonarqube.org/latest/setup/install-server/

          3. Alibaba代碼規(guī)約插件

          阿里代碼規(guī)范,相信大家都不陌生

          關(guān)注公眾號(hào)【Java技術(shù)江湖】后回復(fù)“PDF”即可領(lǐng)取200+頁(yè)的《Java工程師面試指南》

          強(qiáng)烈推薦,幾乎涵蓋所有Java工程師必知必會(huì)的知識(shí)點(diǎn),不管是復(fù)習(xí)還是面試,都很實(shí)用。



          瀏覽 33
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  豆花视频网站 | 色94色 欧美 setu | 国产操逼视频网站 | www.麻豆成人 | 精品不卡一区二区三区 |