Правила анализа
Встроенные правила
В анализаторе кода есть встроенный список правил, представленный в таблице ниже.
Код | Правило | Область | Действие | Примечание |
---|---|---|---|---|
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 | Большое количество аргументов | Процесс | Ошибка | В процессе превышено количество допустимых аргументов. Правило имеет параметр "Счетчик аргументов", по умолчанию установлено |
ST-PR-002 | Пустой блок Catch | Элемент | Ошибка | В элементе Try-Catch есть пустой блок Catch, следовательно, исключение из блока Try не обрабатывается |
ST-PR-003 | Несколько уровней диаграмм | Процесс | Ошибка | Проверяет вложенность диаграмм согласно допустимому значению. Правило имеет параметр "Количество уровней", по умолчанию |
ST-PR-004 | Пустой рабочий процесс | Процесс | Предупреждение | В проекте есть пустой процесс (файл *.ltw), который рекомендуется удалить для улучшения читаемости проекта |
ST-PR-005 | Недоступные элементы | Процесс | Предупреждение | В процессе есть недоступные элементы. Например, закомментированные элементы или элементы, недостижимые диаграммой. Рекомендуется их удалить или добавить аннотацию для закомментированных элементов |
ST-PR-006 | Вложенные блоки if | Процесс | Предупреждение | В процессе превышен максимально допустимый порог вложенности для элемента If-Else. Рекомендуется уменьшить вложенность блоков if до минимума, чтобы легче было поддерживать процесс. Правило имеет параметр "Порог", значение по умолчанию |
ST-PR-007 | Глубоко вложенные действия | Процесс | Предупреждение | В процессе есть вложенные контейнеры, правило распространяется на все контейнеры. Рекомендуется уменьшить вложенность, чтобы облегчить понимание и поддержку процесса Правило имеет параметр "Порог", значение по умолчанию |
ST-PR-008 | Неполный элемент if | Элемент | Предупреждение | Элемент If-Else не заполнен. Если у вас заполнен блок Else, но пуст Then, подумайте об изменении логики элемента If-Else |
ST-PR-009 | Соглашение об именах переменных | Процесс | Предупреждение | Правило проверяет, соответствуют ли имена переменных соглашению о наименовании. Правило имеет параметр "Регулярное выражение" для указания шаблона |
ST-PR-010 | Соглашение об именах аргументов | Процесс | Предупреждение | Правило проверяет, соответствуют ли имена аргументов соглашению о наименовании. Правило имеет параметры "Регулярное выражение" для аргументов всех направлений (In, Out, InOut) |
ST-PR-011 | Превышена длина переменной | Процесс | Предупреждение | Превышена длина названия переменной, рекомендуется уменьшить название. Правило имеет параметр "Длина" со значением по умолчанию в |
ST-PR-012 | Превышена длина аргумента | Процесс | Предупреждение | Превышена длина названия аргументов, рекомендуется уменьшить название. Правило имеет параметр "Длина" со значением по умолчанию в |
ST-PR-013 | Переменные с префиксом DataTable | Процесс | Предупреждение | Переменная типа DataTable должна иметь префикс dt_ |
ST-PR-014 | Аргументы с префиксом DataTable | Процесс | Предупреждение | Аргумент типа DataTable должен начинаться типом и продолжаться префиксом dt_ |
ST-PR-015 | Значение аргумента по умолчанию | Процесс | Предупреждение | Используйте для аргументов значения по умолчанию для тестирования отдельных процессов |
ST-PR-016 | Неиспользуемые переменные | Процесс | Предупреждение | В процессе есть неиспользуемые переменные, которые рекомендуется удалить |
ST-PRJ-001 | Пакетные ограничения | Проект | Ошибка | Проект содержит пакеты, запрещенные в вашей организации. Правило имеет параметр "Запрещенные пакеты", где можно через запятую перечислить названия таких пакетов |
ST-PRJ-002 | Обязательные пакеты | Проект | Ошибка | В проекте отсутствуют пакеты, которые требуются вашей организации. Правило имеет параметр "Обязательные пакеты", где можно через запятую перечислить названия таких пакетов |
Дополнительные правила
Если вы хотите расширить встроенный список правил, то установите в Студию NuGet-пакет Primo.ProjectAnalyzer.Extended.
Пакет возможно установить следующими способами:
Скачать архив
Primo.ProjectAnalyzer.Extended.zip
в папку установки Студии. Следует распаковать его в корень папки, чтобы библиотекаPrimo.ProjectAnalyzer.Extended.dll
находилась на одном уровне сPrimo.Studio.exe
. После чего перезапустить Студию, если она была запущена.Установить NuGet-пакет Primo.ProjectAnalyzer.Extended через Управление зависимостями Студии.
При установке пакета, в анализатор добавится возможность сохранять изменения в процессе/проекте при запуске анализа, а также новые правила из таблицы ниже.
Код | Правило | Область | Действие | Примечание |
---|---|---|---|---|
ST-PR-017 | Стандартное имя компонента | Элемент | Предупреждение | В процессе используется стандартное имя элемента. Лучше давать элементу уникальное имя (переименовать), указывающее на его назначение в процессе. Например, элемент "Присвоение" можно переименовать в "Присвоение <имя переменной>". Уникальное название элемента поможет быстрее понять при отладке, в каком элементе произошла ошибка |
ST-PR-018 | Бесконечный цикл | Элемент | Предупреждение | В процессе есть цикл, не имеющий конца. Например, правило сработает, если у вас есть "Цикл Do-While" с условием |
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. Правило имеет параметр "Порог", в котором вы можете указать допустимое количество вложенностей для проверки (по умолчанию |
ST-PR-024 | Аннотация для главной последовательности не задана | Процесс | Предупреждение | В процессе отсутствует комментарий для разработчиков, который можно указать в аннотации корневой последовательности |
ST-PR-025 | Загруженность проекта | Процесс | Предупреждение | Количество элементов в одном процессе превышает рекомендуемое число. Правило имеет параметры "Нормально" (значение по умолчанию |
ST-PR-026 | Перегруженность проекта логами | Процесс | Предупреждение | В процессе слишком часто используется элемент "Запись в журнал". Правило имеет параметр "Процент логов относительно остальных элементов", по умолчанию установлено значение |
ST-PR-027 | Переменные с префиксом | Процесс | Предупреждение | Процесс содержит переменную без префикса. Правило имеет 5 шаблонов для переменных разных типов данных, в которых можно указывать рекомендуемые префиксы |
ST-PR-028 | Повторяющиеся элементы в процессе | Процесс | Предупреждение | В процессе есть повторяющиеся части с одинаковой функциональностью, которую можно вынести в подпроцесс. Правило имеет параметр "Процент повторяющихся элементов", по умолчанию |
ST-PR-029 | Вложенные контейнеры | Процесс | Предупреждение | В процессе есть вложенные контейнеры "Открыть браузер", "Присоединиться к браузеру", "Присоединиться к приложению". Правило имеет параметр "Порог", где можно указать допустимый порог вложенности. По умолчанию |
ST-PRJ-003 | Описание для проекта не указано | Проект | Предупреждение | При создании/редактировании проекта не указали комментарий в поле "Описание" |
ST-PRJ-004 | Похожие процессы | Проект | Предупреждение | В проекте есть похожие процессы с одинаковой функциональностью, которую можно вынести в подпроцесс. Правило имеет параметр "Процент повторяющихся элементов", по умолчанию |
Создание правил анализа
Вы можете разработать собственные правила анализа кода согласно этой инструкции.
Last updated