【さいくろまてぃっくふくざつど】
サイクロマティック複雑度 とは?
💡 コードの複雑さを数字で測る、品質管理の物差し
📌 このページのポイント
サイクロマティック複雑度って名前が難しそう…何を測るものなの?
名前は難しそうだけど、やっていることはシンプルだよ。コードの中にあるif文やfor文、switch文などの分岐の数を数えて、そのコードがどれくらい複雑かを数値にするんだ。分岐が多いほど数字が大きくなるよ
具体的にはどうやって計算するの?
一番シンプルな計算方法は、分岐の数+1だよ。if文が3つあれば複雑度は4。何も分岐がない関数は1になる。正確にはグラフ理論で辺の数-節の数+2という公式だけど、実務ではツールが自動計算してくれるから公式を覚える必要はないよ
数字がいくつだと問題なの?
どうやって測ればいいの?手で数えるの?
複雑度が高くなっちゃったらどうすればいいの?
まとめ:ざっくりこれだけ覚えればOK!
「サイクロマティック複雑度」って出てきたら「コードの分岐の多さを数値化した複雑さの指標」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cyclomatic Complexity」 = 循環的複雑度
💬 1976年にThomas McCabeが提唱した指標で、グラフ理論の巡回数(サイクロマティック数)に由来しているよ。半世紀近く使われている定番の品質メトリクスだよ