Перейти к основному содержимому

Архитектура модулей

MMO-DEV WEB разделяет базовые функции кабинета и подключаемые дополнения. Склад и партнерская программа относятся к базовому кабинету и доступны без покупки. Магазин, маркетплейс, кейсы, поддержка, промо-игры и другие расширения подключаются отдельно.

Слои системы​

СлойРоль
SaaS-панельХранит настройки проекта, серверов, платежей и модулей
Публичный APIОтдает данные и выполняет операции через /graphql
Клиентский сайтПоказывает страницы, личный кабинет и пользовательские сценарии
ШаблоныУправляют разметкой, блоками, текстами и выводом данных
Игровая инфраструктураОбрабатывает игровые аккаунты, персонажей, склад и серверные действия

Жизненный цикл модуля​

Этот жизненный цикл относится к подключаемым дополнениям. Базовый склад становится доступен после подключения игрового сервера.

  1. Модуль подключается или покупается в панели.
  2. Для проекта включаются нужные настройки.
  3. Клиентский сайт получает доступ к данным через API.
  4. Шаблоны выводят блоки и формы модуля.
  5. Пользователь выполняет действие.
  6. API возвращает результат или ошибку.

Границы ответственности​

Настройки, права доступа и бизнес-правила должны оставаться в панели и API. В шаблонах не нужно дублировать логику расчета цен, прав, бонусов, доступности сервера или платежных условий.

Шаблон отвечает за представление: показать данные, состояние, предупреждение, кнопку или форму. Решение о том, разрешена ли операция, должен принимать API.

Зависимости модулей​

Некоторые модули зависят от общих настроек:

  • платежные модули требуют платежную систему и валюту;
  • базовый склад и игровые дополнения требуют подключенный игровой сервер;
  • маркетплейс зависит от игровых аккаунтов, персонажей или предметов;
  • поддержка и уведомления зависят от email, Telegram или других каналов связи.

Проектирование изменений​

Перед изменением модуля определите:

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