<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      推薦一款代碼規范檢查(CodeReview)神器

      在實際項目開發中,越是復雜的項目,越是需要很多人協同完成,每一個人根據職責分工不同,負責不同的模塊。在這個過程中,由于每一個人的工作經歷不同,在不同的職場環境中,會形成不同的編碼習慣,比如有人喜歡駝峰命名方式,有人喜歡帕斯卡命名方式,還有人喜歡用下劃線分隔單詞,更有甚者,有的人喜歡隨意命名,那在整個項目中如何保持一種編碼風格,讓每一個人都能快速的看懂其他同事的代碼,就顯得非常關鍵。要解決這一個問題,最直接的方法就是代碼審查(Code Review),同事之間相互審查對方的代碼,以便及時更正,但這也有弊端,比如在項目工期較緊的時候,人工代碼審查就會流于形式;同時大家的編程習慣各不相同,也難于形成統一認識。這時候如果能有一款工具,在編程的時候,及時標識出不規范的地方,那將會大大的節約大家的時間,同時也容易形成統一認識,按照既定的規則進行編程。今天我們就以一個簡單的小例子,簡述如何通過StyleCop.Analyzers實現代碼的靜態審查,僅供學習分享使用,如有不足之處,還請指正。

       

      image

       

      什么是StyleCop.Analyzers?

       

      StyleCop.Analyzes是一個C#源碼分析工具,用于檢測代碼樣式、質量和可維護性、設計及其他問題。它目前已經包含了200多個最佳實踐規則,可以幫助我們更容易的進行代碼審查。而且這些實踐規則,和 Visual Studio 中默認的代碼格式化規則是一致的。它會根據預定義的C#代碼格式的最佳實踐,對我們的源代碼進行檢查,并給出不符合編碼風格的錯誤提示。可以幫助團隊成員強制執行一組代碼樣式和一致性規則。

      github網址為:https://github.com/DotNetAnalyzers/StyleCopAnalyzers/

       

      image

       

      StyleCop安裝

       

      在Visual Studio 2022開發工具中,可以通過Nuget包管理器進行安裝。首先創建示例項目Okcoder.StyleCopAnalyzers.Demo解決方案,它包含兩個項目,分別為WinForm程序Okcoder.StyleCopAnalyzers.Demo和類庫Okcoder.StyleCopAnalyzers.Test。創建成功后,如下圖所示:

       

      image

       

      在項目右鍵,選擇“管理 Nuget程序包...”打開Nuget包管理頁面,然后在“瀏覽”輸入“StyleCop.Analyzers”關鍵字進行搜索。當前最新版本為v1.1.118,如下所示:


      image

       

      可以根據實際情況進行安裝,如果有些項目不需要進行代碼靜態審查,則不需要安裝。

       

      分析器和代碼提示

       

      StyleCop.Analyzers安裝成功后,打開項目Okcoder.StyleCopAnalyzers.Demo的“依賴項”,并在子項中選擇“分析器”中,可以看到StyleCop.Analyzers的內容,它主要包含代碼靜態審查的規則和嚴重程度設置。如下所示:

       

      image

       

      這個時候,當我們打開FrmMain頁面,可以看到多了很多綠色的波浪線,這是在提示我們它不符合StyleCop.Analyzers的代碼審查規則,當鼠標放在綠色波浪線的上方,會提示具體的詳細內容,如下所示:

       

      image

       

      當我們按照StyleCop.Analyzer提示的規則修改后,綠色波浪線會消失,如下所示:

       

      image

      同時經過修改,代碼也變得清爽很多。

       

      StyleCop規則說明

       

      StyleCop.Analyzers定義了很多規則,但我們并不需要應用全部的規則,可以根據項目實際需要應用部分規則,它主要定義的規則如下所示:

      1. 文檔規則:主要包括文檔的定義相關規則,如文檔說明,接口說明,類說明,屬性說明等內容。
      2. 縮進規則:主要是采用哪種方式縮進,如tab縮進,空格縮進。
      3. 間距規則:主要定義間距。
      4. 可讀性規則:主要定義代碼可讀性,如給內置類型設置別名等。
      5. 排序規則:主要定義文檔中元素之間的排序,如屬性,方法等排序規則。
      6. 命名規則:主要定義命名規則方式。
      7. 可維護性規則:主要定義哪些類型需要定義在單獨的文件中,如一個類文件只能包含一個類定義。
      8. 布局規則:主要定義代碼布局,如do-while的閉合花括號和條件表達式在同一行。

      以上是StyleCop.Analyzers定義的主要規則,每一項還包含更詳細的規則,具體可以在實際應用中進行查看。

       

      StyleCop規則配置

       

      StyleCop.Analyzers提供了兩種規則配置方式,本文主要通過stylecop.json文件進行配置,關于stylecop.json的創建,可以通過在代碼警告提示的地方,點擊“快速操作和重構”小燈泡按鈕,然后點擊“Add StyleCop settings file to the project”就可以在項目中添加stylecop.json配置文件,如下所示:

       

      image

       

      配置完成后,stylecop.json的示例文件如下所示:

       

      {
        // ACTION REQUIRED: This file was automatically added to your project, but it
        // will not take effect until additional steps are taken to enable it. See the
        // following page for additional information:
        //
        // https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/EnableConfiguration.md
      
        "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
        "settings": {
          //文檔規則
          "documentationRules": {
            "companyName": "Okcoder", //指定應在版權聲明中出現的公司名稱
            "copyrightText": "Copyright (c) { companyName }. All rights reserved.",
            "xmlHeader": true,
            "variables": {
              "licenseName": "MIT",
              "licenseFile": "LICENSE"
            },
            "headerDecoration": "-----------------------------------------------------------------------",
            "documentInterfaces": true,
            "documentExposedElements": true,
            "documentInternalElements": true,
            "documentPrivateElements": false,
            "documentPrivateFields": false,
            "fileNamingConvention": "stylecop",
            "documentationCulture": "en-US",
            "excludeFromPunctuationCheck": ["seeaslo"]
          },
          //縮進規則
          "indentation": {
            "useTabs": false,
            "tabSize": 4,
            "indentationSize": 4
          },
          //間距規則
          "spacingRules": {
          },
          //可讀性規則
          "readabilityRules": {
            //是否運行給內置類型定義別名
            "allowBuiltInTypeAliases": false
          },
          //排序規則
          "orderingRules": {
            //定義文檔中元素排序和優先級 traits:特性
            "elementOrder": [ "kind", "accessibility", "constant", "static", "readonly" ],
            "systemUsingDirectivesFirst": true,
            "usingDirectivesPlacement": "outsideNamespace",
            "blankLinesBetweenUsingGroups": "allow"
          },
          //命名規則
          "namingRules": {
            //允許使用常見的匈牙利語前綴
            "allowCommonHungarianPrefixes": true,
            "allowedHungarianPrefixes": [ "cd", "md" ],
            "allowedNamespaceComponents": [ "" ],
            "includeInferredTupleElementNames": false, //是否需要觸發推斷出的元組名進行分析
            "tupleElementNameCasing": "PascalCase" // 元組命名方式,Pascal方式
          },
          //可維護性規則
          "maintainabilityRules": {
            //定義哪些類型需要在單獨的文件中
            "topLevelTypes": [ "class", "interface", "enum", "delegate", "struct" ]
          },
          "layoutRules": {
            "allowConsecutiveUsings": true, //允許使用連續無花括號的語句
            "allowDoWhileOnClosingBrace": false, //是否允許do while 的條件表達式和閉合括號在同一行
            "newlineAtEndOfFile": "allow" // 文件結尾是否允許出現新行標識符
          }
        }
      }

       

      配置規則共享

       

      在實際應用中,我們不止有一個項目,如果需要在多個項目中應用同一套代碼審查規則,可以將stylecop.json文件復制到公共目錄,如解決方案文件夾,如下所示:

       

      image

       

      在需要添加的項目中,右鍵編輯項目文件,然后在項目文件中添加如下代碼,將共享規則文件鏈接到項目中,如下所示:

       

      <ItemGroup>
          <AdditionalFiles Include="..\stylecop.json" Link="stylecop.json" />
      </ItemGroup>

       

      添加后項目文件如下所示:

       

      image

       

      并且在一個地方修改stylecop.json文件,會同時生效,因為兩個項目都是鏈接的同一個json文件。在項目中如下所示:

       

      image

      以上就是《推薦一款代碼規范檢查(CodeReview)神器》的全部內容,旨在拋磚引玉,一起學習,共同進步!

      posted @ 2025-08-28 12:00  老碼識途呀  閱讀(381)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲中文字幕无码久久精品1| 好男人社区在线www| 好男人日本社区www| 精品免费看国产一区二区| 人妻内射一区二区在线视频| 天啦噜国产精品亚洲精品| 亚洲美女少妇偷拍萌白酱| 亚洲AV无码专区亚洲AV紧身裤| 日韩国产成人精品视频| 体态丰腴的微胖熟女的特征| 国产午夜亚洲精品国产成人| 日本国产精品第一页久久 | 国产午夜福利视频在线| 2018av天堂在线视频精品观看 | 人妻少妇精品视频三区二区 | 国产午夜福利在线观看播放| 国产精品亚洲а∨无码播放| 新绛县| 麻豆一区二区三区香蕉视频| 久久精品国产99久久久古代| 欧美日韩精品一区二区三区在线| 国产成人精品视频国产| 国产精品亚洲综合网一区| 激情综合网激情国产av| 国产网友愉拍精品视频手机| 狠狠亚洲超碰狼人久久| 国产一区二区不卡自拍| 欧美一区内射最近更新| 天天做天天爱夜夜夜爽毛片| 精品国产乱弄九九99久久| 国产日产欧产系列| 日本午夜精品一区二区三区电影 | 国产精品久久久久久av| 蜜桃臀av一区二区三区| 国产午夜福利大片免费看| 亚洲中文一区二区av| 中文字幕亚洲综合第一页| 国产精品自拍三级在线观看| 日韩伦人妻无码| 麻豆a级片| 色综合久久夜色精品国产|