うどんてっくメモ

技術的なメモをまったりと

【Rider】CognitiveComplexityを導入してコードの複雑さの定量的な計測をしてみる

はじめに

本記事で紹介および検証を行なっているツール、ライブラリのバージョンは次の通りです。

  • Rider 2024.1
  • CognitiveComplexity 1.0.1

バージョンによっては挙動に差異がある場合もありますので、ご了承ください。

Cognitive Complexity (認知的複雑度)

Cognitive Complexity (認知的複雑度)はコードの複雑度を推し量る指標のひとつです。こちらのサイトで詳しく説明してくれています。

qiita.com

コードの複雑さを数値として捉えることで、コードを整理する際のいい指標になります。 Riderでコードを書く際にこのCognitive Complexityを分かりやすく確認するプラグインが存在します。

プラグインの導入と利用

プラグインGitHubで公開されています。

github.com

導入自体はMarket Placeにあるプラグインを導入するだけです。

メソッドの上部などにCognitiveComplexityが表示され、特定の閾値を超えるとコードが複雑だよ〜と表示されます。 表示設定自体はCode Visionで設定できます。

クリックすると内訳を表示します。 if分岐やそのネストなど、コードの複雑さに寄与する部分に+1などの複雑度の定量的な加算箇所が提示されます。

閾値自体も設定できるので、プロジェクトの指標や運用に合わせて調整するといいでしょう。