...

Глава 5. Уровни изоляции и обновление решений

Тема в разделе "Краткое руководство по созданию Low-code решений", создана пользователем ELMA365, 3 май 2023.

  1. ELMA365

    ELMA365 Moderator

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

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

    В интерфейсе системы изоляция проявляет себя в первую очередь как ошибки экспорта. Поэтому вы столкнетесь с ней в момент экспорта разработанного функционала из среды разработки, для дальнейшего импорта в среду тестирования или в продакшн. Подробнее о средах и организации разработки описано в главе «Организация процесса разработки».

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

    В системе существует несколько типов выгружаемых и устанавливаемых пакетов. Каждый тип соответствует уровню изоляции:
    1. Приложение (namespace.app) — атомарный тип пакета. Содержит только одно приложение и все, что с ним связано.
    2. Раздел (namespace) — набор приложений и процессов. Раздел как правило является логической единицей, решающей ряд связанных задач.
    3. Модуль (namespace) — набор виджетов, пользовательских блоков и методов API. В модулях создаются переиспользуемые сущности, которые можно применять в разных приложениях, интерфейсах, процессах. Другой ключевой сценарий использования модулей — это создание интеграций и подключение внешних систем/сервисов.
    4. Решение (solution) — тип пакета для единовременной выгрузки одного или нескольких разделов и модулей.
    5. Конфигурация (global) — все разделы, модули, оргструктура и другие сущности на уровне компании.

    [​IMG]
    Элементы платформы и уровни изоляции

    Изоляция на уровне приложения

    Изоляция на уровне приложения содержит само приложение и всё, что с ним связано. При экспорте приложения выгружаются:
    • контекст приложения;
    • интерфейсы на уровне приложения — формы и виджеты;
    • настройки приложения, например, настройка названия элемента приложения;
    • бизнес-процессы;
    • нумераторы;
    • дополнительные параметры;
    • шаблоны;
    • веб-формы;
    • группы и роли.
    Изоляция на уровне приложения при решении бизнес-задач чаще всего не используется, так как одного приложения для решения задачи обычно недостаточно. Но изоляция на уровне приложения используется «под капотом», когда вы экспортируете решение, в составе которого есть приложение из системного раздела. Приложение из системного раздела включается в состав решения на этом уровне изоляции.

    Изоляция на уровне раздела

    Изоляция на уровне раздела содержит раздел и всё его содержимое. При экспорте выгружаются:
    • приложения, и всё, что с ними связано;
    • бизнес-процессы на уровне раздела;
    • нумераторы на уровне раздела;
    • дополнительные параметры на уровне раздела;
    • шаблоны на уровне раздела;
    • группы и роли на уровне раздела;
    • контракты;
    • портал.
    Изоляция на уровне раздела используется, когда решение бизнес-задачи закрывается одним разделом и не требует дополнительных модулей и других разделов в своём составе.

    Изоляция на уровне модуля

    Изоляция на уровне модуля содержит модуль и всё его содержимое. При экспорте выгружается целиком.

    Используется в двух случаях:
    1. Когда модуль самостоятельный. Рассмотрим пример интеграции с телефонией, в которой реализуется системная точка расширения. В нём необходимо настроить только подключение к телефонии, но не нужно выполнять дополнительные настройки для встройки этого модуля в решение.
    2. Когда модуль универсальный. Например, интеграция с учётной системой, в которой реализуются действия для бизнес-процессов. Эти действия можно встроить в любой бизнес-процесс, но это потребует дополнительных настроек для встройки модуля в решение.

    Изоляция на уровне решения

    Изоляция на уровне решения содержит разделы и модули, включённые в его состав. В него могут быть добавлены:
    • разделы со всем содержимым;
    • модули со всем содержимым;
    • приложения из системных разделов.
    Такой уровень изоляции более предпочтителен для комплексных решений, в состав которых будут входить и разделы с приложениями, и модули, которые уже интегрированы в бизнес-логику решения. Кроме этого, изоляция на уровне решений поддерживает зависимости от других решений. Это значит, что вы можете сослаться на приложение из другого раздела, не входящего в решение. При этом другой раздел должен быть включён в другое решение, тогда при экспорте будет возможность установить зависимость.

    Изоляция на уровне конфигурации

    Содержит всю конфигурацию системы — все уровни изоляции, описанные выше, оргструктуру, а также настройки реализованные на уровне компании. Например, дополнительные параметры или группы. При экспорте выгружается в составе:
    • всех разделов со всем содержимым;
    • всех модулей со всем содержимым;
    • бизнес-процессов на уровне компании;
    • интерфейсов на уровне компании;
    • шаблонов документов на уровне компании;
    • групп и ролей на уровне компании;
    • дополнительных параметров на уровне компании;
    • оргструктуры.
    Такой уровень изоляции подойдёт, если:
    • разработка ведётся одним человеком и расширение команды не планируется;
    • разрабатывается только один контур и реализация других контуров не планируется;
    • в решении используется оргструктура;
    • у вас уже есть решение, в котором нарушена изоляция и нет времени на его рефакторинг.