<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è)插件再試試!

          共 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è)趺葱薷模瑯O大的方便了我們的開發(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 國(guó)產(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)
            <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>
                    苍井空在线网站 | 正在播放:【性感女侍】疯狂做爱 | 成人在线性爱 | 青娱乐免费在线 | 国产熟妇疯狂性做爰XXXⅩ网站 |