Qodana – новый статический анализатор кода на базе продуктов IntelliJ. Анализ кода осуществляется с помощью инспекций. Для каждого файла из анализируемого проекта инспекция берет его AST-дерево и запускает на нем алгоритм, который проверяет какие-то правила языка (несоответствие типов, некорректное использование оператора и т.д.). Результат выполнения инспекции внутри IDE – подсветка кода цветом, в зависимости от серьезности проблемы. Результат выполнения инспекции внутри Qodana - запись о наличии проблемы(+ ее атрибуты) в выходном файле.
Проверка всего кода большим набором инспекций(для java их около 300) весьма трудоемкий процесс(проверка кода Idea Ultimate профилем по умолчанию занимает 7 часов). Для анализа затрат существует сервис статистики на который мы отправляем время их работы, однако этого недостаточно, чтобы делать качественные выводы об оптимизации работы Qodana.
Требуется доработать сбор статистики, а также построить отчет который поможет принимать решения об оптимизации/включения по умолчанию инспекций. Для этого нужно:
Увеличить количество отправляемых данных, разбив время работы инспекции на составные куски. Потребуется дорабатывать код платформы Intellij IDEA, возможно инструментировать байткод.
Научить наш сервис строить понятный отчет по конкретной сессии Qodana. Это работа с нашим сервисом статистики и AWS Athena.
Успешный результат выглядит как возможность построить отчет о том, на что мы потратили машинное время в каждом конкретном запуске Qodana. Как следствие, вы будете весьма подробно представлять себе, как именно IDEA работает над анализом кода.
Попробуем посчитать средний вес одной инспекции. Нужно будет:
По всем вопросам можно писать на alexey.afanasiev@jetbrains.com
Знание Java и/или Kotlin