1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 2300字,需瀏覽 5分鐘

         ·

        2021-12-25 00:01


        點(diǎn)擊上方?藍(lán)字?關(guān)注我們!



        2021 最新 Java 編程資料免費(fèi)領(lǐng)!Java 視頻教程,Java Web 項(xiàng)目教程,互聯(lián)網(wǎng)Java 面試真題 / 算法題,簡(jiǎn)歷模板,Linux 服務(wù)器等等,點(diǎn)擊領(lǐng)取!

        來源:cnblogs.com/cjsblog/p/10735800.html

          新來的同事,經(jīng)常寫一些 “爛代碼” 偷襲我,這次給領(lǐng)導(dǎo)建議,搞一個(gè)代碼檢查工具,一鍵掃描,統(tǒng)一風(fēng)格化編碼,看以后還敢亂寫代碼。

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

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

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

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

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

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

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

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

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

          7、糟糕的設(shè)計(jì) 通過sonar可以找出循環(huán),展示包與包、類與類之間相互依賴關(guān)系,可以檢測(cè)自定義的架構(gòu)規(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ì)于代碼中的警告我們不能視而不見

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

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

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

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

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

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

          2. SonarQube

          SonarQube是一個(gè)開源的代碼質(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)成功后,訪問 http://localhost:9000 用管理員賬號(hào)(admin/admin)登錄

          接下來,為了把檢測(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ù)庫中,具體安裝就不演示了,下面是文檔

          https://docs.sonarqube.org/latest/setup/install-server/

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

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


          往期推薦

          9 個(gè) GVP 國產(chǎn) Java 開源項(xiàng)目!是真滴哇塞

          一股清流!在 P 站上教微積分,看著視頻可以入睡...

          一名程序員的維權(quán)之路:996 加班累到肺部切除...

          小技巧:IDEA 卡住不動(dòng)的解決辦法

          基于 Java 疫情防控簡(jiǎn)單的管理系統(tǒng)





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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          1. <strong id="7actg"></strong>
          2. <table id="7actg"></table>

          3. <address id="7actg"></address>
            <address id="7actg"></address>
            1. <object id="7actg"><tt id="7actg"></tt></object>
              麻豆av在线免费看 | 亚洲成人视频在线免费观看 | 波多野结衣中文字幕一区二区 | 国产福利久久久 | 黄色动漫最新动漫免费观看 | a天堂亚洲一区二区三区在线观看 | 91亚洲精品久久久久久久久久久久 | 在线观看黄色豆花视频免费网站 | 69久久久| 性欧美亚洲xxxx乳在线观看 |