BDUI
Мой канал - https://t.me/carbonka
Интересная тема. Я бы сказал, на хайпе. Особенно учитывая развивающуюся потребность бизнеса релизиться без сторов в условиях санкций.
Точечно проходиться не буду, но мне удалось посмотреть детально на практически все реализации крупных компаний на текущий момент с технической точки зрения.
Что такое BDUI? Backend-Driven UI - это концепция в разработке приложений с интерфейсом, при котором бэкенд управляет как данными приложения, так и его внешним видом.
Если посмотреть на процесс разработки, например, экрана мобильного приложения, то состоять он будет из плюс-минус следующих шагов: 1⃣ Разработка дизайна в Figma. 2⃣ Автогенерация макетов в JSON. 3⃣ Загрузка JSON в конструктор экранов. 4⃣ Этап шаблонизации, когда размечаются динамические области. 5⃣ Настройка связей между шаблонами и данными (обычно в какой-то БД). 6⃣ Публикация нового API для интерфейсов.
Перевод полноценного продуктового сценария на BDUI занимает примерно 6-9 месяцев. В динамически развивающемся продукте обычно за это время неоднократно происходят изменения клиентского пути. Поэтому сценарий должен быть более-менее законченный и меняться не чаще 1-2 раз в год или должен быть довольно коротким и простым (например, одношаговым).
Да, после внедрения в этом продукте появляется возможность делать практически любые изменения без релиза буквально за 1-2 часа, но какой это сценарий должен быть?
Если это изменения текста и маркетинговых сценариев (баннеры, картинки, иконки), то дешевле работать через CMS, потому что реализация простая и безотказная как швейцарские часы, а профит точно такой же (без релиза).
Если мы говорим о формах и анкетах, то реализация конструктора анкет в виде SDK и бэкенда под них будет быстрее и эффективнее.
Во всех других случаях BDUI будет очень дорогим, и любые новые изменения в клиентском пути потребуют доработок. Все интерфейсы могут быть полностью потеряны. Так или иначе, связи экранов и их структура JSON лежат в какой-то БД. А значит, это единая точка отказа, которая требует довольно дорогой поддержки с точки зрения доступности и стабильности, так как данная БД становится критической системой. Это же является одной из причин, почему, на мой взгляд, нельзя переводить все приложение на BDUI - ведь в этом случае возникнет риск потери всего приложения.
Следовательно, на текущий момент BDUI возможно внедрить только частично.
Архитектура для внедрения BDUI должна быть более-менее чистой и целевой, так как внедряется новый API слой для интерфейсов. Если в момент внедрения нового слоя API у нас за ним полный бардак и неразобранный монолит, мы можем усложнить наш проект в целом, особенно со временем и с внедрением новых связей и сервисов.
Вывод: Backend-Driven UI всё же узкоспециален. Реализация полноценного интерфейса в такой парадигме — задание со звёздочкой в квадрате, готовое съесть много денег бизнеса. Поэтому отлично заходит этот подход либо для очень крупного, либо для малого бизнеса. Да и выглядит это как некий Trade-off в обоих случаях.