TGViewer
Code Mining Code Mining @codemining · 914 subscribers
Post #16 146
Цикломатическая сложность

Мы продолжаем знакомить читателя с базовыми понятиями программной инженерии. Сегодня поговорим про цикломатическую сложность (cyclomatic complexity).

Если коротко, то это метрика оценки сложности программы разработанная в 1976 году Томасом МакКейбом (Thomas J. McCabe).

По сути, цикломатическая сложность (ЦС) части программного кода — количество линейно независимых маршрутов через программный код. Если выражать формулой, то параметр может быть представлен следующим образом:

M = E − N + 2P,
где:

M — цикломатическая сложность (ЦС),
E — количество рёбер в графе,
N — количество узлов в графе,
P — количество компонент связности.


А чем же это всё может быть полезно?

1. Избыточные значения ЦС указывают на переусложненные участки вашего кода.

2. Комплексное отслеживание ЦС спасает вас от влетания на рефакторинг (внезапно!). 📈

3. Излишне высокие значения ЦС намекают на сложности сопровождения программы.


О пороговых значениях Цикломатической сложности и её отличиях от Когнитивной будем писать в следующих постах. А пока простая задачка, как вы думаете, какая ЦС у кода ниже?

void foo(void)
{
if (a)
if (b)
x=1;
else
x=2;
}
More from @codemining
  1. Jul 3, 2026Пайконы и наблюдения вокруг В конце июля в Москве пройдет PyCon — конференция, которую я п…
  2. May 28, 2026🍏Стартовал коллоквиумом молодых ученых SYRCoSE! Сегодня на площадке этнографического парк…
  3. May 18, 2026Привет! Уже на этой неделе начинается Data Fest 2026 🥰 ура-ура!🤗 Наш список офлайнов: Мо…
  4. Apr 10, 2026"Срок подачи статей и тезисов на международную конференцию ИСП РАН «Иванниковские чтения»…
  5. Apr 6, 2026Иванниковские чтения 2026 CFP В 2026 году в Этномире (Калужская обл., Боровский р-н, д. Пе…
  6. Feb 10, 2026Код-майнинг сложно представить без открытого кода, поэтому мы не забываем поддерживать пол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →