Мне никогда не нравилась метрика цикломатической сложности (cyclomatic complexity), которую большинство инструментов использует для анализа сложности кода. Просто она задумана скорее для того, чтобы показать вариативность сценариев в коде, что, естественно, влияет на его сложность, но не всегда прямолинейно. Посыл идет скорее к сложности тестирования, чтобы убедиться что код работает правильно. В случае автоматизации тестирования, цикломатическая сложность говорит нам сколько тестов нужно написать на этот код. В случае ручного тестирования – сколько должно быть разных сценариев для этого кода (тут на деле еще сложнее, потому что не до каждого такого сценария может добраться легко ручное тестирование).
(далее…)