Ось деякі метрики складності від stan4j .
Інструмент аналізу структури затьмарення.
Мені подобається цей інструмент і показники. Я розглядаю показники як статистику, показники, попереджувальні повідомлення. Іноді завдяки деяким методам або деяким класам дійсно є складна логіка, яка робить їх складними, що потрібно зробити, це стежити за ними, переглядати їх, щоб побачити, чи немає потреби їх переробляти або ретельно переглядати, як правило, вони схильні до помилок. Також я використовую його як інструмент аналізу для вивчення вихідного коду, оскільки мені подобається вчитися від складного до простого. Насправді він включає деякі інші метрики, такі як Роберт К. Мартін, Метрики Chidamber & Kemerer, Count Metrics, але мені це найбільше подобається
Метрики складності
Метрики цикломатичної складності
Цикломатична складність (CC)
Цикломатична складність методу - це кількість точок прийняття рішень у графіку управління потоком методу, збільшена на одиницю. Точки рішення виникають у операторах if / for / while, реченнях case / catch та подібних елементах вихідного коду, де потік управління не просто лінійний. Кількість точок рішення (байт-код), введених одним (вихідним кодом) висловленням, може змінюватися, залежно, наприклад, від складності булевих виразів. Чим вище значення цикломатичної складності методу, тим більше тестових випадків потрібно для тестування всіх гілок графіку контролю потоку методу.
Середня цикломатична складність
Середнє значення метрики цикломатичної складності за всіма методами програми, бібліотеки, дерева пакетів або пакету.
Метрики жиру Метрика
жиру артефакту - це кількість ребер у відповідному графіку залежності артефакту. Тип графіка залежності залежить від метричного варіанту та обраного артефакту:
Жир
Метрика жиру програми, бібліотеки або дерева пакетів - це кількість країв графіка залежності піддерева. Цей графік містить усі діти артефакту в ієрархії дерева пакетів, тим самим включаючи також пакунки листя. (Щоб побачити відповідний графік у поданні композиції, потрібно відключити перемикач Плоских пакетів Провідника структур. Перемикач Показувати бібліотеки повинен бути ввімкнений, якщо вибраний артефакт є бібліотекою, інакше його потрібно вимкнути.)
Метрика жиру пакета - це кількість країв графіка залежності одиниці. Цей графік містить усі класи пакету найвищого рівня.
Метрика жиру класу - це кількість країв графа-члена. Цей графік містить усі поля, методи та класи-члени класу. (Цей графік і значення Fat доступні лише в тому випадку, якщо аналіз коду виконувався за допомогою елемента рівня деталізації, а не класу.)
Жир для бібліотечних залежностей (Fat - Бібліотеки)
Метрика Fat для бібліотечних залежностей програми є числом граф залежності її бібліотеки. Цей графік містить усі бібліотеки програми. (Щоб побачити відповідний графік у поданні композиції, потрібно ввімкнути перемикач Показувати бібліотеки Провідника структур.)
Жир для плоских залежностей пакету (Fat - Packages)
Метрика жиру для плоских пакетних залежностей додатка - це кількість країв його графіку залежностей плоских пакетів. Цей графік містить усі пакети програми. (Щоб побачити відповідний графік у поданні композиції, потрібно ввімкнути перемикач «Плоскі пакети» Провідника структур і відключити перемикач «Показати бібліотеки».)
Показник Fat for Flat Package Dependencies (Бібліотека) для бібліотеки - це кількість країв її графіку залежностей з плоским пакетом. Цей графік містить усі пакети бібліотеки. (Щоб побачити відповідний графік у поданні композиції, потрібно включити перемикачі Flat Packages та Show Libraries.)
Жир для залежностей класу верхнього рівня (жир - одиниці)
Метрика жиру для залежностей класу верхнього рівня програми чи бібліотеки - це кількість країв графіка залежності одиниці. Цей графік містить усі класи найвищого рівня програми чи бібліотеки. (Для розумних додатків він занадто великий, щоб його можна було візуалізувати, і тому його неможливо відобразити в поданні композиції. Графіки залежності одиниць можуть відображатися лише для пакетів.)
the number of StyleCop warnings + 10 * the number of FxCop warnings + 2 to the power of the number of disabled warning types
. Тільки після того, як значення цього показника буде якомога меншим, людині варто починати перегляд коду (на мій погляд). Підсумовуючи: вдосконалені інструменти, а не спрощені формули, можуть допомогти поліпшити якість коду. Це, мабуть, не в темі.