Каждое приложение имеет бизнес-логику, своеобразный поток действий и операций, который определяет будущий функционал приложения.
Большой частью бизнес-логики являются бизнес-процессы. Что это такое и как их создавать — разбираемся в этой статье.
Что такое бизнес-логика?
Прежде чем рассмотреть бизнес-процессы в отдельности, давайте разберем понятие бизнес-логики.
Бизнес-логика — набор процессов, которые определяют последовательность выполнения операций в приложении, отвечают за обработку данных и устанавливают правила взаимодействия между пользователем и приложением.
Работу бизнес-логики можно рассмотреть на простом примере регистрации пассажира на рейс администратором, который вводит информацию в базу данных.
Здесь администратор выбирает нужный рейс, заполняет форму для регистрации пассажира, вводя необходимые данные. В это время система проверяет авторизован ли пользователь и имеет ли права на выполнение этих действий. Затем программа обрабатывает полученную информацию, проверяет соответствие данных установленному формату, получает данные из базы о полете и пассажире, оповещает, если информация указана неверно, отправляет данные в базу с командой внести изменения.
Как результат данные обновляются и в списке появляется новый пассажир.
Описанные в примере действия, их последовательность, обмен данными, их обработка, запросы и ответы — за все эти операции отвечает бизнес-логика.
Бизнес-логика — неотъемлемый компонент архитектуры приложения. Как уточнялось выше, бизнес-логика состоит из бизнес-процессов. Давайте рассмотрим их подробнее.
Что такое бизнес-процесс?
Бизнес-процессы представляют собой последовательность действий для реализации функционала приложения.
Бизнес-процессы в AppMaster.io
Как и при классическом подходе, в AppMaster.io бизнес-логика строится из бизнес-процессов. БП предназначены для работы с данными: поиск, создание, удаление, обновление, изменение и отвечают за выполнение любых действий в приложении.
На платформе есть специальный редактор для работы с бизнес-процессами. Для создания БП используются блоки.
В каждом бизнес-процессе автоматически создаются замыкающие блоки Start и End. Они могут иметь переменные: выходные для стартового блока и входные для конечного.
У каждого блока БП, за исключением блоков start и end, есть два типа коннекторов — точек подключения (входные In, выходные Out):
- flow_connection — коннектор потока выполнения, описывает очередь блоков, какой за каким выполнять;
- var_connection — коннектор переменных, описывает какую переменную откуда брать.
Бизнес-процессы делятся на три категории:
- Бизнес-процессы бэкенда — компилируются в исходный код на языке Go, выполняются в серверном приложении.
- Бизнес-процессы для веб-приложений — доставляются в веб-приложение, обрабатываются языком JavaScript на стороне браузера.
- Бизнес-процессы для мобильных приложений — доставляются в мобильные приложение и выполняются в них, обрабатываются нативными инструментами мобильных платформ.
Внутри каждого типа приложения есть определенный набор бизнес-процессов.
В бэкенде — обычные бизнес-процессы, имеют блоки Start и End. Могут поддерживать асинхронный вызов и режим транзакций.
В веб и мобильных приложениях существуют следующие типы БП:
- БП компонентов — задаются в каждом компоненте, странице, виджете или экране. Зависят от компонента, для которого они создаются. Не имеют блока End. На входе имеют один или несколько блоков-триггеров, которые начинают выполнение при наступлении заданного события, например, нажатия кнопки.
- БП уровня приложения — задаются для всего приложения, практически идентичны БП компонентов за исключением того, что имеют контекст приложения и имеют только один триггерный блок — начальный.
- Generic БП — задаются на уровне приложения, однако созданы чтобы в них была вынесена часто используемая логика из всех других бизнес-процессов. Эти БП имеют блоки Start и End и ведут себя аналогично серверным бизнес-процессам, но не имеют режима транзакции.
Как создать бизнес-процесс на AppMaster.io?
Для работы с бизнес-процессами на платформе AppMaster.io существует редактор бизнес-процессов.
Все редакторы бизнес-процессов устроены по одному принципу и имеют только несколько отличий в зависимости от типа бизнес-процесса (об этом мы писали выше).
Редактор БП состоит из:
- левой панели со списком доступных блоков;
- рабочей области в центре;
- правой панели с настройками выбранного элемента (блока).
Чтобы добавить блок бизнес-процесса, нужно перетащить элемент с левой панели на рабочую область.
В настройках каждого БП можно активировать режим транзакции. В таком случае БП приобретает свойство атомарности: БП либо выполняется полностью, либо не выполняется ни один из его отдельных блоков. Если в каком-то блоке произойдет ошибка, то будет выполнен откат всех изменений, вызванных предыдущими блоками бизнес-процесса.
На левой панели блоки распределены в группы по видам:
- Logic — логика. Отвечают за изменение потока процесса, реализацию системных функций, сравнение переменных и преобразование типов данных.
- Functions — функции. Позволяют выполнять различные типы операций с разными типами данных, такие как округление чисел, разбиение строк, чтение файлов и многое другое.
- Model Functions — функции для работы с моделями базы данных. Позволяют выполнять операции с моделями данных, такие как создание, поиск, редактирование и удаление.
- User-Created BPs — пользовательские бизнес-процессы. Вызывает любой из пользовательских бизнес-процессов, который вы создали.
- Global variables — глобальные переменные. Переменные, которые используются в рамках всего проекта. Отображается при наличии глобальных переменных.
- Variables — переменные. Задает и сохраняет переменные, которые будут использоваться в бизнес-процессе.
- External API Requests — внешние API-запросы. Запуск любого ранее созданного запроса к внешнему API.
- Models — модели. Устанавливают и сохраняют переменные моделей данных, которые будут использоваться в бизнес-процессе.
- Enums — перечисление. Устанавливает и сохраняет переменные с типом перечисление, которые будут использоваться в бизнес-процессе.
- Auth — блоки, добавляемые модулем авторизации Auth.
При добавлении того или иного модуля в проект, в списке блоков будет создан раздел с бизнес-процессами установленного модуля.
При помощи правой панели настроек можно добавлять кастомные переменные, задавать дефолтные значения существующим, настраивать блоки.
Чтобы добавить переменные, необходимо выделить нужный блок бизнес-процесса и нажать на иконку плюс на панели Variables.
Различают локальные и глобальные переменные.
Локальные переменные доступны для всех типов бизнес-процессов. Локальные переменные существуют в пределах одного БП. После выполнения БП локальные переменные уничтожаются, освобождая оперативную память приложения.
Глобальные переменные предназначены для использования во всем приложении. Они объявляются заранее и доступны в любом бизнес-процессе. Они хранят данные в течение жизненного цикла приложения.
Локальные и глобальные переменные могут иметь любой тип: от простых int и string, до массивов моделей и энамов. Хранятся исключительно в оперативной памяти.
Пример бизнес-процесса
Рассмотрим пример создания БП на примере редактора бизнес-процессов бэкенда. Процесс будет выполнять регистрацию пассажира на рейс.
*Все данные уже были введены в базу данных. Ниже описано только создание бизнес-процесса. Полный урок доступен тут.
Чтобы создать новый процесс, перейдите в раздел Business Logic и нажмите на Create business process.
В открывшемся окне введите название процесса, можно заполнить поле description и при необходимости включить режим транзакции.
По умолчанию в нашем БП уже есть два блока: Start и End.
В блок Start мы добавляем несколько выходных переменных. Для этого кликните на нужный блок и в правой части экрана напротив Variables нажмите иконку +.
В новом окне введите название переменной, укажите ее тип и задайте дефолтное значение, если необходимо.
Добавляем несколько переменных, которые нужны нам для регистрации пассажира на рейс:
- ID рейса — flight_id;
- Данные о пассажире — passenger;
- Место — seat;
- Check-in статус — status.
Далее нам нужно получить ID рейса из базы данных. Для этого мы добавляем блок GetOneFlight.
Между блоками мы устанавливаем связи, для этого достаточно протянуть стрелку от одного блока к другому. Здесь голубая линия выполняет функцию связи потока между блоками, указывая порядок их выполнения. Цветные линии — связи данных, которые устанавливаются между переменными и указывают на то, откуда брать и куда передавать данные в рамках БП.
ID рейса получено, теперь нам нужно получить данные о пассажире и удостовериться, что такой человек есть в базе данных.
Добавляем блок Expand Passenger и получаем ID пассажира. При помощи блока GetOne Passenger проверяем запись о нем в базе данных.
Теперь нам нужно создать саму регистрацию. Для этого используем блок Make Registration. Устанавливаем связи между блоками.
Теперь необходимо сохранить запись о регистрации в базе данных, так как до этого мы создали ее только в рамках бизнес-процесса. Добавляем блок Create Registration, устанавливаем связи и завершаем бизнес-процесс.
Созданный бизнес-процесс отвечает за выполнение следующих действий: поиск данных о рейсе в базе данных, поиск и получение ID пассажира, создание и сохранение регистрации.
В видеоуроке доступен пошаговый разбор создания бизнес-процесса, а также обзор раздела Бизнес-логики на платформе AppMaster.io. А на YouTube-канале вы можете пройти полный курс AppMaster.io 101 и научиться работать с no-code платформой.
Так легко и наглядно при помощи блоков и визуальных связей на платформе AppMaster.io можно собирать бизнес-процессы любой сложности без написания кода. Попробуйте создать свой бизнес-процесс и приложение, зарегистрировавшись на пробный период на платформе.