Ключевые факты
- Категория
- Разработка и Web
- Типы входных данных
- textarea, select, number
- Тип результата
- json
- Покрытие примерами
- 4
- API доступен
- Yes
Обзор
Анализатор сложности кода — это инструмент для статического анализа исходного кода на языках JavaScript, TypeScript, Python, Java и Go. Он автоматически вычисляет цикломатическую и когнитивную сложность, выявляет глубокую вложенность, слишком длинные функции и дублирующиеся участки логики, помогая разработчикам поддерживать чистоту, тестируемость и читаемость кодовой базы.
Когда использовать
- •Перед отправкой кода на ревью (Pull Request), чтобы убедиться в отсутствии переусложненной логики и глубокой вложенности.
- •При рефакторинге старых проектов для выявления «горячих точек», длинных функций и дублирующегося кода.
- •Для контроля качества кода в команде и соблюдения стандартов длины функций.
Как это работает
- •Вставьте исходный код в текстовое поле и выберите язык программирования (или оставьте автоопределение).
- •Настройте пороги для длинных функций, уровня вложенности и окна поиска дубликатов в зависимости от ваших стандартов.
- •Запустите анализ, чтобы инструмент разобрал синтаксис и вычислил метрики сложности.
- •Получите подробный JSON-отчет со статистикой по функциям, цикломатической сложности и найденным дублям.
Сценарии использования
Примеры
1. Анализ ветвистой функции расчета
Frontend-разработчик- Контекст
- Разработчик написал функцию расчета стоимости заказа с множеством условий для скидок и VIP-клиентов.
- Проблема
- Нужно проверить, не стала ли функция слишком сложной для понимания и тестирования.
- Как использовать
- Вставить код функции в поле «Исходный код», выбрать язык JavaScript и установить порог вложенности на 2.
- Пример конфигурации
-
Язык: javascript, Порог длинной функции: 8, Порог вложенности: 2 - Результат
- Анализатор показывает цикломатическую сложность 5 и предупреждает о глубокой вложенности, что сигнализирует о необходимости рефакторинга.
2. Поиск дублирующейся логики
Backend-разработчик- Контекст
- В скрипте обработки данных есть несколько функций для нормализации пользователей и администраторов.
- Проблема
- Подозрение на дублирование кода (Copy-Paste), которое усложняет поддержку и внесение изменений.
- Как использовать
- Вставить Python-скрипт, установить окно дублирования на 3 строки и запустить анализ.
- Пример конфигурации
-
Язык: python, Окно дублирования: 3 - Результат
- Инструмент находит кластер дубликатов из двух вхождений, указывая точные строки, где логика повторяется, что позволяет вынести ее в общую функцию.
Проверить на примерах
developmentСвязанные хабы
FAQ
Какие языки программирования поддерживаются?
Инструмент поддерживает эвристический анализ кода на JavaScript, TypeScript, Python, Java и Go. Также доступна функция автоопределения языка.
Что такое цикломатическая сложность?
Это метрика, которая оценивает количество линейно независимых маршрутов через программный код. Чем больше ветвлений (if, for, while), тем выше сложность и тем больше тестов требуется для покрытия.
Чем когнитивная сложность отличается от цикломатической?
Когнитивная сложность оценивает, насколько трудно человеку прочитать и понять код, учитывая вложенность и логические разрывы, а не просто математическое количество путей выполнения.
Как работает поиск дубликатов?
Инструмент ищет повторяющиеся блоки кода, сравнивая их структуру. Вы можете настроить параметр «Окно дублирования», чтобы указать минимальное количество строк для фиксации совпадения.
В каком формате выдаются результаты?
Результаты анализа предоставляются в структурированном формате JSON, который содержит общую сводку по файлу, метрики каждой отдельной функции и список найденных дубликатов.