静的分析ツールの使用方法の学習


そこで今週は、フォーマッターやリンターなどの静的分析ツールについて学びました. Hacktoberfest の PR のおかげで、これらの分析ツールを使用した経験も少しありました.PR を作成した 2 つのリポジトリにはこれらのツールがあり、レポにはこれらのツールが実行されたことを自動的にチェックするボットもありました.

私の LENNAH SSG では、フォーマッターとリンターの両方に Clang を使用することにしました.私が clang を使用することにしたのは、C++ 用のフォーマッターとリンターの両方が 1 つのパッケージに含まれており、特に Visual Studio 拡張機能が非常にユーザーフレンドリーに見えるためです. Clang には、拡張機能を使用したくない場合に、コマンド ラインでフォーマッターとリンターの両方を実行するために使用できるコマンドもあります.ただ、これはやり方を理解するのに少し時間がかかったので、簡単に設定方法を簡単に説明します.

コマンドライン用の Clang のインストール + 実行


  • ビルド here をダウンロード

  • 次に、インストーラーを実行するときに、必ずシステム PATH に LLVM を追加してください.

  • インストールしたら、ターミナルでプロジェクト フォルダーに移動し、次のコマンドを使用して lint をフォーマットまたは検索できます.

  • $ clang-format -style=file LennahSSG/*.cpp LennahSSG/*.h
    



    $ clang-tidy --config="" LennahSSG/*.cpp LennahSSG/*.h --extra-arg=-std=c++17 --extra-arg=-xc++ --
    


    Visual Studio の Clang 拡張機能のインストール


  • Visual Studio を開き、上部の [拡張機能] ドロップダウンに移動します.
  • 拡張機能の管理を開き、Clang Power Tools を検索します.
  • 次に、Visual Studio をダウンロードして再起動します.
  • バーの上部に新しいボタンが表示され、Clang が提供する他の機能の書式設定、整頓、および使用が可能になります.
    詳細については、 getting started guide on their website をご覧ください.

  • LENNAH からのリントのフォーマットと削除



    フォーマッターとリンターを実行したところ、実際にコードを読みやすくする単純な変更がいくつかあることがわかりました.最大の変更点は、行の前に追加の空白を使用したことです.特に、新しい行を作成するたびに << を使用してファイルに出力している部分では、最初の行と一致しません.例えば:

        outputFile << "</ul>\n"
            << "</body>\n"
            << "</html>\n";
    


    しかし、フォーマッタの後は、読みやすさが大幅に向上し、満足のいくものになりました.

        outputFile << "</ul>\n"
                   << "</body>\n"
                   << "</html>\n";
    


    これは小さな変更でしたが、Visual Studio のベース スペーシングがどのように機能したかという理由で、あまり考えたことはありませんでした.これは単純なスペーシングであっても、コードを大幅に改善する非常に優れた修正だと思います.

    Linter に関しては、私のコードには lint が 1 つしかなく、関数の前の繰り返しから削除するのを忘れていた余分なブール変数でした.それは他の多くの変数に囲まれた小さな変数だったので、とても良かったです.Linter がなかったら、気付くのに長い時間がかかっていたでしょう.

    これは、静的分析ツールをセットアップするための優れた学習体験であり、それらがいかに強力であるかを実際に示しています.これらのツール、特に拡張機能は非常に使いやすく、生活の質を大幅に向上させるので、今後も常に使用します.私がこれまでコードを書いてきた方法は、Microsoft Word をスペル チェックや文法チェックなしで使用するようなもので、文字通り、自分自身にとって非常に困難でした.そのため、まだ行っていない場合は、自分のプロジェクトの静的解析ツールをしっかりと調べてください.次回までお大事に!