Проектирование системы: серверный поток для приложения типа «DMV» - PullRequest
0 голосов
/ 14 ноября 2018

Я хотел бы создать приложение, которое будет отправлено пользователю и обновляться раз в несколько месяцев.Это приложение будет включать в себя поток «приложений», подобный тому, который человек заполнил бы DMV.Приложение будет взаимодействовать с внутренним сервером (который я бы разместил) через полезную нагрузку JSON.

Требования: - Business logic to live in the backend server (where I would have more control) - The app will be driven by the backend server, ie the backend server will tell the app exactly what to do. - I would like to like collect information if users start "application" and where they are in the process. - "Application" pages must be completed in specific order (order should be defined in the backend server)

Текущий подход, о котором я думаю, заключается в следующем:

Создайте приложение в качестве средства визуализации шаблонов.Он будет поставляться с кучей шаблонов для каждой страницы «приложения».Как только пользователь нажимает кнопку «приложение» в приложении, внутренний сервер сообщит приложению, какой шаблон отобразить.Например, пользователь нажимает «запустить приложение», приложение отправит запрос на внутренний сервер для создания нового «приложения», внутренний сервер создаст приложение в базе данных и сообщит приложению, что следующим шагом является «Сбор адреса пользователя».Этот шаг будет соответствовать шаблону в приложении, которое приложение будет отображать пользователю, собирать домашний адрес пользователя и отправлять данные обратно на внутренний сервер (вместе с идентификатором «application») и так далее, пока приложение не будет завершено приложением.пользователь.(в бэкэнде приложение будет иметь конечный автомат, который будет гарантировать, что приложение будет выполнено по порядку)

Я чувствую, что есть плюсы и минусы такого подхода.

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

...