Правила анализа
Last updated
Last updated
В анализаторе кода есть встроенный список правил, представленный в таблице ниже.
Код | Правило | Область | Действие | Примечание |
---|---|---|---|---|
Если вы хотите расширить встроенный список правил, то установите в Студию NuGet-пакет Primo.ProjectAnalyzer.Extended.
Пакет возможно установить следующими способами:
Скачать архив Primo.ProjectAnalyzer.Extended.zip
в папку установки Студии. Следует распаковать его в корень папки, чтобы библиотека Primo.ProjectAnalyzer.Extended.dll
находилась на одном уровне с Primo.Studio.exe
. После чего перезапустить Студию, если она была запущена.
Установить NuGet-пакет Primo.ProjectAnalyzer.Extended через Управление зависимостями Студии.
При установке пакета, в анализатор добавится возможность сохранять изменения в процессе/проекте при запуске анализа, а также новые правила из таблицы ниже.
Вы можете разработать собственные правила анализа кода согласно этой инструкции.
Код | Правило | Область | Действие | Примечание |
---|---|---|---|---|
MO-EX-001
Пустой элемент Приложение Excel
Элемент
Предупреждение
Рекомендуется удалить пустые контейнеры "Приложение Excel"
MO-OU-001
Пустой элемент Приложение Outlook
Элемент
Предупреждение
Рекомендуется удалить пустые контейнеры "Приложение Outlook"
PR-AN-001
Продолжить при ошибке = true
Элемент
Предупреждение
Правило показывает элементы со свойством "Продолжить при ошибке", для которых установлена галочка (true). Данное свойство рекомендуется использовать осторожно, т.к. все исключения в данном элементы будут проигнорированы
ST-AN-001
Счетчик рабочих процессов проекта
Проект
Информация
Показывает количество файлов процессов (*.ltw) в проекте
ST-AN-002
Счетчик элементов процессов проекта
Процесс
Информация
Показывает количество элементов в одном процессе
ST-PR-001
Большое количество аргументов
Процесс
Ошибка
В процессе превышено количество допустимых аргументов. Правило имеет параметр "Счетчик аргументов", по умолчанию установлено 20
ST-PR-002
Пустой блок Catch
Элемент
Ошибка
В элементе Try-Catch есть пустой блок Catch, следовательно, исключение из блока Try не обрабатывается
ST-PR-003
Несколько уровней диаграмм
Процесс
Ошибка
Проверяет вложенность диаграмм согласно допустимому значению. Правило имеет параметр "Количество уровней", по умолчанию 2
ST-PR-004
Пустой рабочий процесс
Процесс
Предупреждение
В проекте есть пустой процесс (файл *.ltw), который рекомендуется удалить для улучшения читаемости проекта
ST-PR-005
Недоступные элементы
Процесс
Предупреждение
В процессе есть недоступные элементы. Например, закомментированные элементы или элементы, недостижимые диаграммой. Рекомендуется их удалить или добавить аннотацию для закомментированных элементов
ST-PR-006
Вложенные блоки if
Процесс
Предупреждение
В процессе превышен максимально допустимый порог вложенности для элемента If-Else. Рекомендуется уменьшить вложенность блоков if до минимума, чтобы легче было поддерживать процесс. Правило имеет параметр "Порог", значение по умолчанию 3
ST-PR-007
Глубоко вложенные действия
Процесс
Предупреждение
В процессе есть вложенные контейнеры, правило распространяется на все контейнеры. Рекомендуется уменьшить вложенность, чтобы облегчить понимание и поддержку процесса Правило имеет параметр "Порог", значение по умолчанию 7
ST-PR-008
Неполный элемент if
Элемент
Предупреждение
Элемент If-Else не заполнен. Если у вас заполнен блок Else, но пуст Then, подумайте об изменении логики элемента If-Else
ST-PR-009
Соглашение об именах переменных
Процесс
Предупреждение
Правило проверяет, соответствуют ли имена переменных соглашению о наименовании. Правило имеет параметр "Регулярное выражение" для указания шаблона
ST-PR-010
Соглашение об именах аргументов
Процесс
Предупреждение
Правило проверяет, соответствуют ли имена аргументов соглашению о наименовании. Правило имеет параметры "Регулярное выражение" для аргументов всех направлений (In, Out, InOut)
ST-PR-011
Превышена длина переменной
Процесс
Предупреждение
Превышена длина названия переменной, рекомендуется уменьшить название. Правило имеет параметр "Длина" со значением по умолчанию в 30
символов
ST-PR-012
Превышена длина аргумента
Процесс
Предупреждение
Превышена длина названия аргументов, рекомендуется уменьшить название. Правило имеет параметр "Длина" со значением по умолчанию в 30
символов
ST-PR-013
Переменные с префиксом DataTable
Процесс
Предупреждение
Переменная типа DataTable должна иметь префикс dt_
ST-PR-014
Аргументы с префиксом DataTable
Процесс
Предупреждение
Аргумент типа DataTable должен начинаться типом и продолжаться префиксом dt_
ST-PR-015
Значение аргумента по умолчанию
Процесс
Предупреждение
Используйте для аргументов значения по умолчанию для тестирования отдельных процессов
ST-PR-016
Неиспользуемые переменные
Процесс
Предупреждение
В процессе есть неиспользуемые переменные, которые рекомендуется удалить
ST-PRJ-001
Пакетные ограничения
Проект
Ошибка
Проект содержит пакеты, запрещенные в вашей организации. Правило имеет параметр "Запрещенные пакеты", где можно через запятую перечислить названия таких пакетов
ST-PRJ-002
Обязательные пакеты
Проект
Ошибка
В проекте отсутствуют пакеты, которые требуются вашей организации. Правило имеет параметр "Обязательные пакеты", где можно через запятую перечислить названия таких пакетов
ST-PR-017
Стандартное имя компонента
Элемент
Предупреждение
В процессе используется стандартное имя элемента. Лучше давать элементу уникальное имя (переименовать), указывающее на его назначение в процессе. Например, элемент "Присвоение" можно переименовать в "Присвоение <имя переменной>". Уникальное название элемента поможет быстрее понять при отладке, в каком элементе произошла ошибка
ST-PR-018
Бесконечный цикл
Элемент
Предупреждение
В процессе есть цикл, не имеющий конца. Например, правило сработает, если у вас есть "Цикл Do-While" с условием true
, поскольку в этом случае может возникнуть ситуация, когда робот не сможет выйти из цикла
ST-PR-019
Использование элементов Поколения 1
Элемент
Предупреждение
В процессе есть элементы из группы "Поколение 1". Лучше вместо них использовать новые элементы
ST-PR-020
Проверка вложенностей "Open Browser", "Attach browser", "Attach application"
Элемент
Предупреждение
В процессе есть указанные контейнеры с вложенными в них контейнерами
ST-PR-021
Фиксированные задержки в элементе
Элемент
Информация
В процессе есть элемент с задержками, которые указаны в общих свойствах "Пауза до (мс)", Пауза после (мс)". Рекомендуется проверить, действительно ли нужны эти паузы. Возможно вместо пауз стоит использовать элементы "Присутствие элемента", "Исчезновение элемента" и т.д.
ST-PR-022
Переменная исключения в блоке Try-Catch не задана
Элемент
Предупреждение
В элементе Try-Catch не указана переменная, хранящая исключение. В этом случае ее невозможно будет обработать
ST-PR-023
Вложенные циклы
Процесс
Предупреждение
В процессе есть вложенные циклы, из-за которых его будет сложно понимать и поддерживать. Для Студии Pro проверяются циклы While, Do-While, ForEach, ForEach для DataTable, Повтор N раз. Для Студии Citizen — Повтор N раз, ForEach для DataTable. Правило имеет параметр "Порог", в котором вы можете указать допустимое количество вложенностей для проверки (по умолчанию 3
)
ST-PR-024
Аннотация для главной последовательности не задана
Процесс
Предупреждение
В процессе отсутствует комментарий для разработчиков, который можно указать в аннотации корневой последовательности
ST-PR-025
Загруженность проекта
Процесс
Предупреждение
Количество элементов в одном процессе превышает рекомендуемое число. Правило имеет параметры "Нормально" (значение по умолчанию 20
), "Средне" (по умолчанию 50
), "Критично" (по умолчанию 100
). Значения в параметрах можно изменять
ST-PR-026
Перегруженность проекта логами
Процесс
Предупреждение
В процессе слишком часто используется элемент "Запись в журнал". Правило имеет параметр "Процент логов относительно остальных элементов", по умолчанию установлено значение 50
ST-PR-027
Переменные с префиксом
Процесс
Предупреждение
Процесс содержит переменную без префикса. Правило имеет 5 шаблонов для переменных разных типов данных, в которых можно указывать рекомендуемые префиксы
ST-PR-028
Повторяющиеся элементы в процессе
Процесс
Предупреждение
В процессе есть повторяющиеся части с одинаковой функциональностью, которую можно вынести в подпроцесс. Правило имеет параметр "Процент повторяющихся элементов", по умолчанию 50
ST-PR-029
Вложенные контейнеры
Процесс
Предупреждение
В процессе есть вложенные контейнеры "Открыть браузер", "Присоединиться к браузеру", "Присоединиться к приложению". Правило имеет параметр "Порог", где можно указать допустимый порог вложенности. По умолчанию 2
ST-PRJ-003
Описание для проекта не указано
Проект
Предупреждение
При создании/редактировании проекта не указали комментарий в поле "Описание"
ST-PRJ-004
Похожие процессы
Проект
Предупреждение
В проекте есть похожие процессы с одинаковой функциональностью, которую можно вынести в подпроцесс. Правило имеет параметр "Процент повторяющихся элементов", по умолчанию 50