Интеграция

Проблемы интеграции

  • Расходятся названия ключей
  • Может расходится структура данных
  • Расхождение типов запросов

Чего мы хотим во время интеграции?

  • Плавный переезд
  • Максимальное отсутствие боли
  • Процесс переезда не должен ломать текущие задачи
  • Минимальное количество багов
  • Минимальное количество конфликтов в коде

Возможные пути интеграции

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

Плюсы

  • Никаких лишних прослоек

Минусы

  • Высокая связанность и динамическая типизация, строковые шаблоны = адская боль
  • Изменения в одном месте влекут множественные изменения в других местах
  • Большое кол-во конфликтов

Поправить ВСЕ на фронте

Плюсы

  • Теоретическая возможность переключания между апи.
  • Возможность маппинга сущностей на фронте

Минусы

  • Уже созданные абстракции
  • Плохая поддержка со стороны IDE.
  • Лишний код в рантайме, в итоговом бандле.

Абстракиця над апи на фронте

Плюсы

  • Опыт написания подобных микросервисов
  • Статическая типизация = мощная поддержка со стороны IDE
  • Swagger
  • Возможность переключения на GraphQL
  • Удобное тестирование.
  • Бесшовный переезд для фронта
  • Отсутствие пересечений кода разных разработчиков
  • Независимость от структуры данных
  • Наличие микросервиса со всеми необходимыми эндпоинтами

Минусы

  • Необходимость тестирования как фронта так и прослойки
  • Поддержка микросервиса

Прослойка микросервис

Как сейчас?

Что будет если выберем микросервисную прослойку?

Как будет происходить переезд?

  1. Произведем рефакторинг код стайла на мок сервисе
  2. Прикрутим swagger для понимания текущих требований со стороны фронтэнда
  3. Перейдем на controller - service подход
  4. Прикрутим механизм маппинга данных
  5. Модульно начнем проксировать запросы на PHP
  6. Постепенно откажимся от мок данных
  7. Напишем тесты

Еще о плюсах этого подхода

  1. На время переезда будет сохранена работа фронтэнда.
  2. Никаких изменений на шаткой стороне динамической типизации на фронте.
  3. Возможность "дергать" другие микросервисы
  4. Статическая типизация, поддержка со стороны IDE, swagger
  5. Понятная логика и структура данных для новичков на фронте
  6. Один запрос на микросервис может быть собран из нескольких составляющих, запросы по локальному подключению на HTTP 2.0 очень быстры

deck

By sticker0ne

deck

  • 35