Статический анализ Kotlin-приложений

Статический анализ Kotlin-приложений #

Документация #

Статический анализ исходного кода #

Статический анализ исходного кода применяется для решения следующих задач:

  • Нахождение синтаксических и лексических проблем в исходном коде. Реализуется внутри компилятора языка.
  • Обеспечение единого оформления для исходного кода.
  • Предупреждение потенциальных проблем в исходном коде приложения.

Изучите особенности анализа исходного кода

Проверка форматирования кода с помощью ktlint #

ktlint — инструмент для статического анализа форматирования исходного кода в соответствии с официальным соглашением о стилистике кода.

Для подключения к проекту необходимо:

  • Добавить поддержку инструмента в систему сборки проекта Gradle.
  • Добавить настройку стиля программирования в среду сборки IDEA.
  • Использовать Gradle-задачи для проверки исходного кода на соответствие стиля.

Добавление поддержки в Gradle #

Инструмент ktlint может быть интегрирован разными способами, рассмотрим использование плагина Ktlint Gradle.

Необходимо добавить плагин в конфигурацию build.gradle:

plugins{
    id("org.jlleitschuh.gradle.ktlint") version "11.0.0"
}

Внутри конфигурации необходимо указать версию инструмента. Для этого в файле gradle.properties укажите версию инструмента:

ktlintVersion=0.45.1

И в build.gradle необходимо указать используемую версию инструмента:

ktlint {
    version = ktlintVersion
}

Запуск проверки исходного кода #

После конфигурации можно запускать Gradle-задачу для проверки исходного кода ktlintCheck: ./gradlew ktlintCheck. Все сообщения о нарушениях форматирования необходимо исправить.

Настройка форматирования в IDEA #

После успешной конфигурации необходимо:

  1. Выполнить задачу ktlintApplyToIdea: ./gradlew ktlintApplyToIdea.
  2. Перезапустить IDEA, чтобы новые настройки применились.

После выполнения действий исправления будут внесены в локальный каталог .idea. Если данный каталог удалён, то задачу по настройке необходимо выполнить ещё раз.

Анализ потенциальных проблем в исходном коде #

Инструмент detekt выполняет поиск потенциальных проблем в исходном коде. Данные проблемы связаны с типичными проблемами:

  • Слишком длинные методы.
  • Большая вложенность циклов и условных операторов.
  • Плохие названия переменных.
  • Добавление комментариев к исходному коду и т.д.

Для использования инструмента необходимо:

  • Сформировать правила проверки кода.
  • Добавить конфигурацию для запуска инструмента в Gradle.
  • Использовать Gradle-задачи для проверки исходного кода.

По желанию можно добавить расширение для IDEA.

Формирование набора правил проверки кода #

В настоящий момент никаких отличий относительно базовой конфигурации инструмента не предполагается.

Важно: самостоятельно вносить изменения в конфигурацию инструмента запрещено. В частности запрещено подавлять сообщения от анализатора с помощью аннотаций и baseline-файла.

Добавление поддержки в Gradle #

Инструмент изначально предлагает расширение для Gradle. Для его использования необходимо добавить соответствующий плагин в build.gradle:

plugins {
    id "io.gitlab.arturbosch.detekt" version "1.21.0"
}

Далее внутри конфигурации необходимо добавить настройку для проверки кода:

detekt {
    allRules = true
    buildUponDefaultConfig = true
}

Запуск проверки исходного кода #

После конфигурации для проверки исходного кода можно запустить задачу detekt: ./gradlew detekt. Все сообщения от инструмента необходимо исправлять.

Настройка проверки внутри IDEA #

Проект detekt предоставляет возможность встроить проверку с помощью специального расширения.

Задача #

Добавьте проверку исходного кода с помощью инструментов ktlint и detekt в рамках исходного кода последней практической работы. Исправьте все проблемы, которые были найдены.

© A. M. Васильев, 2022, CC BY-SA 4.0, andrey@crafted.su