Ca1502 уникайте надмірної складності

Цикломатическая складність вимірює кількість лінійно незалежних шляхів в методі, яке визначається числом і складністю умовних гілок. Низькою цикломатическая складністю, як правило, відрізняються методи, які прості для розуміння, перевірки і підтримки. Цикломатическая складність обчислюється на основі діаграми потоку управління методу у відповідності з наступним виразом:

цикломатическая складність = кількість граней - кількість вузлів + 1

де вузол являє логічну крапку розгалуження, а грань - лінію між вузлами.

Попередження про порушення правила виводиться в тому випадку, якщо цикломатическая складність перевищує значення 25.

Щоб усунути порушення даного правила, змініть структуру методу, щоб знизити цикломатическая складність.

Відключення попереджень даного правила безпечно в тому випадку, якщо складність методу важко зменшити, а сам метод простий для розуміння, перевірки і підтримки. Зокрема, метод, що містить об'ємний оператор switch (Select в Visual Basic), є першим кандидатом на виключення з цього правила. Ризик дестабілізації базового коду пізніше в процесі циклу розробки або внесення непередбачених змін в поведінку часу виконання раніше поставленого коду може переважити переваги зручності підтримки, що виникають при оптимізації коду.

Цикломатическая складність обчислюється за допомогою додавання одиниці до наступних значень:

Число гілок (таких як оператори if. While і do)

Число операторів case в блоці switch

У наступних прикладах показані методи з різною цикломатическая складністю.

Схожі статті