サイクロマティックコンプレキシティとは?
2023-10-27 09:09:57
質問
時々見かける用語に「Cyclomatic Complexity」というのがあります。このSOでも、「言語XのCCを計算する方法」や「最小のCCでYを行う方法」などの質問を見かけましたが、それが何なのか、よく理解できません。
についてですが NDepend ウェブサイト で、基本的に "メソッド内の判定の数という説明を見ました。if, for, && などの各判定は CC の "score" に+1 されます)。本当にそうなのでしょうか?もしそうなら、なぜこれが悪いのでしょうか?コードを理解しやすくするために、ifステートメントの数をかなり少なくしたいと思うかもしれないことはわかりますが、これは本当にそれのすべてなのでしょうか?
それとも何か深いコンセプトがあるのでしょうか?
どのように解決するのですか?
深い考え方は知りません。 一般的には保守性指数という文脈で考えられていると思います。 特定のメソッド内の分岐が多いほど、そのメソッドの操作のメンタル モデルを維持するのが (一般に) 難しくなります。
より高い循環的複雑性を持つメソッドは、ユニットテストで完全なコードカバレッジを得ることがより困難です。 (ありがとうございます マークW !)
それはもちろん、保守性の他のすべての側面をもたらします。 エラーの発生しやすさ、進歩のしやすさ、などなど。 しかし、核となる概念は非常に単純なものです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン