Cyclomatic Complexity
Definition of cyclomatic complexity
Cyclomatic complexity, sometimes referred to as McCabe's complexity, is a count of the linearly independent paths through source code. You can also think of this more simply as "the number of decisions a given block of code needs to make".
Most languages provide similar constructs (if
, while
etc) for "decision" points. For a more comprehensive understanding of Cyclomatic Complexity, Radon, a static analysis tool which checks the cyclomatic complexity of Python code (engine), provides a bit more detail including the impact of specific statements on Cyclomatic Complexity.
Engines which compute Cyclomatic Complexity
Cyclomatic vs Cognitive Complexity
Cyclomatic complexity measures the number of execution paths through code, but excessive return statements can make a function harder for a human to follow because control flow jumps around. So they are related, but different.
We recommend checking for cognitive complexity rather than cyclomatic complexity, and we pair that with a return statements check, as two of our 10 point maintainability inspection. (All of which is completely configurable).
Further resources and reading
Updated almost 6 years ago