Интеграция
Проблемы интеграции
- Расходятся названия ключей
- Может расходится структура данных
- Расхождение типов запросов
Чего мы хотим во время интеграции?
- Плавный переезд
- Максимальное отсутствие боли
- Процесс переезда не должен ломать текущие задачи
- Минимальное количество багов
- Минимальное количество конфликтов в коде
Возможные пути интеграции
- Поправить все на бэке
- Создать отдельную версию апи для фронта (с маппингом и блэкджэком)
- Перепилить фронт (поменять все ключи, форматы дат, структуру данных)
- Создать абстракцию над апи на фронте
- Создать прослойку в виде микросервиса
Плюсы
- Никаких лишних прослоек
Минусы
- Высокая связанность и динамическая типизация, строковые шаблоны = адская боль
- Изменения в одном месте влекут множественные изменения в других местах
- Большое кол-во конфликтов
Поправить ВСЕ на фронте
Плюсы
- Теоретическая возможность переключания между апи.
- Возможность маппинга сущностей на фронте
Минусы
- Уже созданные абстракции
- Плохая поддержка со стороны IDE.
- Лишний код в рантайме, в итоговом бандле.
Абстракиця над апи на фронте
Плюсы
- Опыт написания подобных микросервисов
- Статическая типизация = мощная поддержка со стороны IDE
- Swagger
- Возможность переключения на GraphQL
- Удобное тестирование.
- Бесшовный переезд для фронта
- Отсутствие пересечений кода разных разработчиков
- Независимость от структуры данных
- Наличие микросервиса со всеми необходимыми эндпоинтами
Минусы
- Необходимость тестирования как фронта так и прослойки
- Поддержка микросервиса
Прослойка микросервис
Как сейчас?

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

Как будет происходить переезд?
- Произведем рефакторинг код стайла на мок сервисе
- Прикрутим swagger для понимания текущих требований со стороны фронтэнда
- Перейдем на controller - service подход
- Прикрутим механизм маппинга данных
- Модульно начнем проксировать запросы на PHP
- Постепенно откажимся от мок данных
- Напишем тесты
Еще о плюсах этого подхода
- На время переезда будет сохранена работа фронтэнда.
- Никаких изменений на шаткой стороне динамической типизации на фронте.
- Возможность "дергать" другие микросервисы
- Статическая типизация, поддержка со стороны IDE, swagger
- Понятная логика и структура данных для новичков на фронте
- Один запрос на микросервис может быть собран из нескольких составляющих, запросы по локальному подключению на HTTP 2.0 очень быстры
deck
By sticker0ne
deck
- 35