Платформа 3V/Формы/Рекомендации по использованию и оптимизации: различия между версиями
(Новая страница: «Рекомендации по настройкам форм: # Минимизировать действия при открытии формы, которые н...») |
|||
Строка 10: | Строка 10: | ||
# Выключать настройку isReadOnly для справочников необходимо только в том случае, если действительно необходимо сохранение данных в источник при выполнении действия сохранения всех источников, чтобы не происходило сохранения тех источников, которые этого не требуют. | # Выключать настройку isReadOnly для справочников необходимо только в том случае, если действительно необходимо сохранение данных в источник при выполнении действия сохранения всех источников, чтобы не происходило сохранения тех источников, которые этого не требуют. | ||
# Для источников формы необходимо описывать в настройках dictionaryAttributes только те атрибуты, которые необходимы для использования в текущей форме, т.е. все лишние атрибуты, которые не используются, в форме запрашиваться не должны. | # Для источников формы необходимо описывать в настройках dictionaryAttributes только те атрибуты, которые необходимы для использования в текущей форме, т.е. все лишние атрибуты, которые не используются, в форме запрашиваться не должны. | ||
+ | |||
+ | Для анализа можно пользоваться метриками. Каждый сервис платформы предоставляет как стандартный набор метрик (потребление памяти и т. п.), так и специфические для конкретного сервиса, по адресу '''http(s)://<host>/<service>/metrics'''<br> | ||
+ | |||
+ | Визуальное их отображение настроено в графане: | ||
+ | * [https://grafana.3v-group.net/d/BlsUbysGz/3v-kartochki?orgId=1 на стенде 3V] | ||
+ | Следует обращать особое внимание на графики "макс. кол-во элементов справочников по Id карточек" (метрика cards_instance_max_dictionary_element_count) и "суммарное кол-во элементов справочников по Id карточек" (метрика cards_instance_total_dictionary_element_count) для обнаружения карточек, в которые загружаются большие справочники.<br> | ||
+ | Также следует обращать внимание на кол-во открытых на данный момент карточек (метрика cards_instances_total). Если отображается кол-во, не соответствующее действительности (пользователь уже закрыл карточки, а они числятся открытыми), то это повод завести ошибку на платформу. |
Версия 14:58, 23 марта 2021
Рекомендации по настройкам форм:
- Минимизировать действия при открытии формы, которые направлены на перестроение и получение данных из отчетов и справочников больших объемов. Например, открывать форму со значениями по умолчанию, либо, при открытии формы с параметром, настроить отложенное построение отчетов.
- Если в формах используется получение значения связанных атрибутов справочников больших объемов, необходимо прописывать настройку данного атрибута как получение значения транзитивного атрибута справочника, а не как связанного, через конструкцию TransitiveAttributeDefinitionDto. Данная настройка используется потому, что связанный атрибут влечет построение всего связанного справочника, а транзитивный - только используемых значений. Аналогичную настройку необходимо использовать при настройке отчетов.
- Если в форме настроены вкладки, на которых размещены контролы, таблицы, то необходимо при открытии настраивать загрузку только активной вкладки, чтобы других вкладках данные загружались только в момент активации вкладки.
- В формах должны присутствовать только те контролы, источники, выражения, правила/условия и действия, которые используются в текущей форме, не должно быть лишних источников, выражений, условий и действий, которые не используются.
- Для раскрывающегося списка, источником которого является большой справочник необходимо настроить серверный поиск.
- По возможности, не злоупотреблять настройкой disableDataEditingRuleId, где указывается условие блокировки контролов при открытии формы, лучше настраивать блокировку на уровне прав всей формы, либо для каждого контрола отдельно.
- Желательно использовать меньше выражений типа EntryExpressionByDictionaryRequestDto, где происходит запрашивание справочника для каждого выражения данного типа.
- Продумывать использование настройки doActionOnChangeValue для контрола, чтобы не происходило постоянного обновления зависимых объектов при изменении значения в контроле, включать данную настройку только для тех контролов, при изменении которых необходимо выполнение действия для дальнейшего заполнения формы.
- Выключать настройку isReadOnly для справочников необходимо только в том случае, если действительно необходимо сохранение данных в источник при выполнении действия сохранения всех источников, чтобы не происходило сохранения тех источников, которые этого не требуют.
- Для источников формы необходимо описывать в настройках dictionaryAttributes только те атрибуты, которые необходимы для использования в текущей форме, т.е. все лишние атрибуты, которые не используются, в форме запрашиваться не должны.
Для анализа можно пользоваться метриками. Каждый сервис платформы предоставляет как стандартный набор метрик (потребление памяти и т. п.), так и специфические для конкретного сервиса, по адресу http(s)://<host>/<service>/metrics
Визуальное их отображение настроено в графане:
Следует обращать особое внимание на графики "макс. кол-во элементов справочников по Id карточек" (метрика cards_instance_max_dictionary_element_count) и "суммарное кол-во элементов справочников по Id карточек" (метрика cards_instance_total_dictionary_element_count) для обнаружения карточек, в которые загружаются большие справочники.
Также следует обращать внимание на кол-во открытых на данный момент карточек (метрика cards_instances_total). Если отображается кол-во, не соответствующее действительности (пользователь уже закрыл карточки, а они числятся открытыми), то это повод завести ошибку на платформу.