C Countプロジェクトのためのコードフォーマット


TLドクター


コードフォーマットの問題点を特定するためにコードレビュー時間を使用するようになるのは、生産的ではなく持続可能である.
だから、このブログの記事では、次のように示します.

  • このコード整形検証ステップへのより良いアプローチdotnet format ツール、
  • 自動化と連続的な方法でこの検証を行うためにGithubアクションを構築する方法.
  • なぜ、私は私のプロジェクトでコード整形検証を改善しなければなりませんか?


    プロジェクト(特に長年の人生と多くの人々が参加している人々)の一貫したフォーマットを確実にすることは、挑戦です.
    プロジェクトは、この書式設定プロセスを支援するためのツールを使用しない場合は、多くの人々の注意と意志に応じてチェックを終了します.
    さらに、人々がコードフォーマットの問題を指摘するためにコードレビューの時間を使うようにすることは、生産的であるか持続可能ではない.

    どのようにより良い方法でそれを行うことができますか?


    C Countプロジェクトを一貫して書式設定スタイルを適用するには、グローバルDOTNETツールを使用できます.dotnet-format .
    The dotnet-format ツールは.editorconfig プロジェクトに書式設定を適用する設定ファイル.
    The .editorconfig 複数の開発者のための一貫したコーディングスタイルを定義し維持するためのファイル形式です.
    良いオプションは一緒にチームを持って、混乱を避けるために採用される設定を明確にすることです.
    を持つ.editorconfig は、構成ファイルを使用すると、登録することが可能ですので、履歴を維持し、チームが採用した基準を追跡するのに便利です.
    どのように起動するかわからない場合は、使用することができますthis .editorconfig file マイクロソフトドキュメントで利用可能です.

    DotNet形式ツールを使用してコードの書式設定を適用する方法


    The dotnet format コマンドをローカルで実行することができますチェックして、定義済みの標準に準拠していないコードを修正します.
    それ以上に、コード整形検証をCIに追加することができます.自動的に継続的にプロジェクトに適用されている書式設定を確認します.

    ローカル環境での実行


    取り付けるdotnet-format 以下のコマンドを実行します.
     dotnet tool install -g dotnet-format
    
    プロジェクトの書式設定が.editorconfig 設定できます.
     dotnet format '.\' --folder --check --verbosity diagnostic
    
    上記のコマンドで
  • --folder オプションはパスがフォルダとして扱われることを示します
  • --check オプションは、これが検証であると言います-プロジェクトコードは変更されません/フォーマットからの逸脱.editorconfig 設定が見つかります
  • --verbosity diagnostic オプションは実行ログをできるだけ冗長にするために使用されます.
  • コードに書式設定を適用するには、--check 前のコマンドからのオプション
     dotnet format '.\' --folder --verbosity diagnostic
    
    あなたが走るためのより多くのオプションを知りたいならばdotnet format , あなたはofficial documentation .

    コードの書式設定を自動化するには、Githubアクションを使用できます


    GitHubアクションの作成は、dotnet-format.yml ファイル:
    < div >
    < p >

    DOTNETフォーマットを理解すること。MYLギタブアクション


    以下のステップで説明しますdotnet-format.yml ファイル:< p >
    < OL >

  • < tag > github actionの名前を定義します.br/>
    <> P >
     name: dotnet format
    

  • < p >アクションは、.editorconfig CかCのソースファイル(**.cs ).

    <> P >
     on:
       push:
         paths:
           - "**.cs"
           - ".editorconfig"
    

  • として、この場合、我々はAを扱っています.NET Flat Frameworkプロジェクト- Windowsで開発、コンパイル、公開されます.この環境を使用してコードの書式設定をチェックしますcrlf 行の設定も終了します).br/>
    <> P >
     jobs:
       check-format:
         runs-on: windows-latest
    

  • 次の項目で詳細に実行されるすべてのステップをグループ化するセクションを定義しますbr/>
    <> P >
         steps:      
    

  • < tt > dotnet CLIの後の使用のためにdotnetコアを設定します.我々のプロジェクトですが.NET完全なフレームワーク、私たちはそれのためにいくつかのグローバルなdotnet CLIツールを使用することができましたbr/>
    <> P >
           - name: Setup .NET Core
             uses: actions/setup-dotnet@v1
             with:
               dotnet-version: '5.0.x'
    

  • <インストール>dotnet-format 後で使用するためのツールbr/>
    <> P >
           - name: Install dotnet-format tool
             run: dotnet tool install -g dotnet-format
    

  • < tt >コードをチェックアウトしますbr/>
    <> P >
           - name: Check out code
             uses: actions/checkout@v2
    

  • を実行するdotnet format コマンドを指定したパスに対して、コード整形をチェックするだけでなく、詳細な実行報告を得るために最大の冗長度を設定します.br/>
    <> P >
           - name: Run dotnet format
             run: dotnet format '.\' --folder --check --verbosity diagnostic
    
  • < OL >

    結果


    コード整形検証ステップを実行した後、.editorconfig ファイルまたは任意のC**.cs ) Github action実行の結果を見るにはp >
    < H >>

    故障❌
    <高橋潤子>
    <高橋潤子> Githubアクションの失敗をシミュレートするために、プロジェクトリポジトリにフォーマットされていないコードを追加しました


    <高橋潤子>.editorconfig 設定のため、不正なコード間隔に関するエラーメッセージを得ました.

    ...

    D:\a\dotnet-full-framework-ci-sandbox\dotnet-full-framework-ci-sandbox\src\Sandbox.WebAPI\Controllers\ValuesController.cs(10,45): error WHITESPACE: Fix whitespace formatting. Insert '\s'. [D:\a\dotnet-full-framework-ci-sandbox\dotnet-full-framework-ci-sandbox]

    D:\a\dotnet-full-framework-ci-sandbox\dotnet-full-framework-ci-sandbox\src\Sandbox.WebAPI\Controllers\ValuesController.cs(10,46): error WHITESPACE: Fix whitespace formatting. Insert '\s'. [D:\a\dotnet-full-framework-ci-sandbox\dotnet-full-framework-ci-sandbox]

    ...


    チェック失敗はプルリクエストに表示されました


    <堀田>here .


    < H >>

    成功✔️
    <高橋潤子>
    私たちはコードフォーマットを修正しましたdotnet format ツールp >
    < P >


    コードが修正された後、PR画面上で直接見ることができます.p >
    < P >


    < tt >実行中の完全なログを見ることができますhere


    プロジェクト


    プロジェクトは興味がありますか?これはすべてのコードが利用可能なリポジトリです
    <> P >
    < div class ="ltag github readmeタグ"
    < div class ="readme概要"

    フェリペトフォリ / 完全なフレームワークCIサンドボックス



    < div >
    < div class ="ltag github本体"
    < div class ="md "データパス="README . md "> < articleクラス="Markdown Body Entry Content Container LG "itemProp = "text "

    ギタブアクション.NETフルフレームワーク


    < P >


    このリポジトリでは、Githubアクションを作成する方法を示します.
    <ウル>

  • ビルドとテスト.NET Framework Web APIプロジェクト
  • コード整形をチェックします.
  • < ull >
    < p >−< p >
    エイリアス= "ブラジル"フォールバックsrc = "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f7.png」🇧🇷oプロップは、sito desteリポジトリを示します.ネットフルフレームワーク, etapas deとして
    <ウル>

  • ビルドEテスターda aplicaの
  • <資料>不定愁訴を中心として
  • < ull >
    <山田>
    < div >
    < br/>
    < div class ="GH BTNコンテナ"View on GitHub < br/>
    < div >
    < br/>

    結論🎯


    < tt >大きなコードベースを維持し、その品質を保証し、定義されているフォーマット規格に適合することは大きな課題です.p >
    これらのステップを自動的に実行する流れを構築することは、メンテナンスプロセスをより簡単で持続可能に保つために非常に重要ですp >
    <高橋潤子>dotnet format コマンドは、これらの目標を達成するのに役立ちます.p >