Как проверить код на GitLab через PMD Scanner

Как сэкономить время техлида на проверку кода разработчика? Как убедиться на 100%, что все шероховатости обнаружены и устранены?

Это можно сделать с помощью автоматизиции этого процесс с помощью интеграции Gitlab с PMD Scanner.

Что такое PMD Scanner?

PMD (Programming Mistake Detector) Scanner - это бесплатный инструмент для проверки исходного кода. Он находит такие ошибки программирования, как неиспользуемые локальные переменные, слишком сложные выражения, пустые операторы, ненужные объекты и другие.

Чаще всего его применяют для проверки кода на Apex и Java, но он также поддерживает C, C++, C#, Groovy, PHP, Ruby, Fortran, JavaScript, PLSQL, Apache Velocity, Scala, Objective C, Matlab, Python, Swift.

PMD регулярно обновляется, последняя версия вышла 31 августа 2020 года.

Чтобы воспользоваться сканером, вы можете либо настроить интеграцию со своей средой разработки, либо скачать его и установить на своем компьютере.

Как работает PMD Scanner

Мы используем подход Continuous Integration, при котором каждый разработчик работает в отдельной Dev-ветке и после завершения определенного этапа (добавление функции, окончание спринта) заливает код в ветку конкретной функции или баг-фикса. Перед слиянием с основной версией техлид проверяет код. После проверки он либо направляется разработчику на доработку, либо становится основным в общем репозитории проекта.

В стандартной версии Gitlab CI отчет приходит в виде 9 последних строчек, в нашем варианте - полная версия в формате .html. Он представляет собой таблицу, где слева указано, в каком файле найдена ошибка, а справа - тип найденной ошибки и ссылка на правило в документации.

К слову, PMD предоставляет возможность выбирать удобный формат для отчетов:

● codeclimate

● csv

● emacs

● html

● ideaj

● json

● summaryhtml

● text (default)

● textcolor

● textpad

● vbhtml

● xml

● xslt

Apex Rules. Примеры

Мы работаем с технологиями Salesforce, поэтому наш код проверяется на основе Apex Rules - готовых стандартов, определяющих качество кода. Под каждый проект будут настраиваться те наборы правил, которые посчитает нужным проверять техлид. Каждое правило имеет приоритет, обозначенный цифрами:

  • 1 (высокий)
  • 3 (средний)
  • 5 (низкий)

Чем выше приоритет (или меньше цифра), тем важнее соблюдение этого правила и острее необходимость внести правки в код. Иногда некоторые замечания сканера можно игнорировать. Речь идет о кастомизированных решениях под существующую бизнес-логику, для выполнения которой ваш код является самым оптимальным, а порой единственным рабочим вариантом.

Всего есть 7 групп Apex Rules:

Кроме этого, пользователи могут создавать правила - это можно сделать на Java или в виде отдельного XPath-запроса.

Как настроить Apex rulesets

Из правил формируются различные наборы, которые применяются к тому или иному проекту, и в PMD есть предустановленные наборы правил.

Можно использовать их либо создать свой набор, подходящий к вашему проекту. Например, настроить сканер таким образом, что он будет игнорировать ошибки с низким приоритетом.

Другие правила

0
Комментарии
-3 комментариев
Раскрывать всегда