Перейти к основному содержанию
Clinford Jordano Valencia
Все проекты
ПлатформаВебМобильные

Сценарии на основе схем с конфигурацией как кодом

Платформа интерфейсов, управляемая конфигурацией, с config-as-code на основе Git: изменения правил выходят за часы без развёртывания фронтенда.

Стек
TypeScript · jsonform · Git · CI/CD · Schema validation

Проблема

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

Подход

  • Формы строятся по схеме. Интерфейс читает конфигурацию JSON или YAML через jsonform: схема порождает поля и правила проверки. Пользовательские действия, например запуск нативного моста, остаются в коде.
  • Один шаг — разные исходы. Конфигурация определяет, что делает шаг для каждого рынка и платформы. Где нативная возможность поддерживается, шаг показывает подсказку и кнопку сканирования; иначе — обычные поля формы и кнопку «Продолжить». Продукт меняет это в конфигурации, а не в коде.
  • Конфигурация как код. Изменения отправляются через Git. Каждое изменение открывает автоматический pull request и запускает CI со строгой проверкой схемы на основе типов TypeScript, поэтому некорректная конфигурация падает до продакшена.

Два решения, которые стоит объяснить

jsonform для отрисовки, код для действий. Полностью управляемый сервером интерфейс, выполняющий произвольную логику, присланную сервером, создаёт риск удалённого выполнения кода и проблемы с производительностью. Отрисовка на основе данных с действиями, привязанными к заранее скомпилированным обработчикам, сохраняет гибкость без этого риска.

Git вместо формы в админке. Лёгкие правки без управления ломают боевые сценарии. Pull request, проверка типов и CI делают каждое изменение прослеживаемым, проверенным и лёгким для отката.

Результат

Выпуск конфигурации больше не зависит от развёртывания фронтенда, поэтому обновления для нескольких рынков ускорились с недель до часов, а дублирование регионального кода перестало расти.