Backend Driven UI (BDUI) - что за...
От: Shmj Ниоткуда  
Дата: 11.12.24 14:19
Оценка:
Тут вводная: https://habr.com/ru/companies/yandex/articles/768282/

Вот, деды же придумали чтобы UI-формы генерились на сервере — сервер отдавал HTML смешанный с данными. Ну пусть работало только в браузере, зато всегда была последняя версия приложения.

Потом и сказали что формы должны генериться на клиенте, сервер отдает только концентрированные данные в виде JSON. А клиенты разные — для моб. 2 шт. и для браузера. Клиенты нужно обновлять каждый отдельно (ну разве что в браузере как бы сам обновляется).

Теперь это:

Backend Driven UI (BDUI) — это концепция, при которой сервер управляет не только данными в приложении, но и формирует интерфейсы: экраны, верстку, реакции на взаимодействия пользователя и переходы между экранами. Задача клиентской стороны сводится к рендерингу экранов на основе данных, полученных с сервера.


Т.е., по сути, перепридумали браузер внутри браузера и внутри моб.

Кто сталкивался?

З.Ы.

Дополню. Вот в чем причина https://dev.go.yandex/blog/how-we-built-bdui-2024-07-12 — обновлять приложухи в маркете — гемморно. Нужно ждать порой несколько недель пока панство соизволить зааппрувить.

Фреймворк, который юзает Яндекс, для решения этой проблемы: https://github.com/divkit/divkit

Видите как — вроде бы смысла нет технического. А практический смысл офигенный — ведь приложения распространяются централизованно и монополизированно, мы как человечество к этому пришли.
Отредактировано 12.12.2024 3:04 Shmj . Предыдущая версия . Еще …
Отредактировано 12.12.2024 3:03 Shmj . Предыдущая версия .
Отредактировано 11.12.2024 14:28 Shmj . Предыдущая версия .
Re: Backend Driven UI (BDUI) - что за...
От: syrompe  
Дата: 11.12.24 16:00
Оценка:
S>Т.е., по сути, перепридумали браузер внутри браузера и внутри моб.
S>Кто сталкивался?

Да сплошь и рядом.
Тот же razor.

Но все еще хуже.

1. На клиенте поднимается хромиум.
2. Сервер генерит HTML, отправляет его клиенту и припасает у себя
3. Попутно поднимается соединение через WebSocket
4. На клиенте каждое нажатие кнопки отправляется на сервер
5. На сервере генерируется новый HMTML и делается diff с припасенным п. 2
6. diff через WebSocket прилетает клиенту и JS его применяет к текущему DOM

Так и живем...
Re: Backend Driven UI (BDUI) - что за...
От: Osaka  
Дата: 11.12.24 19:46
Оценка: +2 -1 :)
S>Т.е., по сути, перепридумали браузер внутри браузера и внутри моб.
Чего только не наколбасят все эти resume-driven architects, вместо того чтобы скачать и запустить в виртуалке микроскопический exe desktop-приложения.
Re[2]: Backend Driven UI (BDUI) - что за...
От: Shmj Ниоткуда  
Дата: 12.12.24 06:05
Оценка:
Здравствуйте, Osaka, Вы писали:

S>>Т.е., по сути, перепридумали браузер внутри браузера и внутри моб.

O>Чего только не наколбасят все эти resume-driven architects, вместо того чтобы скачать и запустить в виртуалке микроскопический exe desktop-приложения.

А как? Допустим вы контора уровня Яндекс, хотите клиентам некое приложение для решения их насущных проблем. Как это сделать?
Re[3]: Backend Driven UI (BDUI) - что за...
От: Osaka  
Дата: 12.12.24 09:58
Оценка:
O>>Чего только не наколбасят все эти resume-driven architects, вместо того чтобы скачать и запустить в виртуалке микроскопический exe desktop-приложения.
S>А как? Допустим вы контора уровня Яндекс, хотите клиентам некое приложение для решения их насущных проблем. Как это сделать?
Сперва нужен запускник (какое-то самодельное VMWare), обозвать его "новый броузер с нейросетями" и в нём "поддержка новых современных особо защищённых приложений".
Re: Backend Driven UI (BDUI) - что за...
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.12.24 10:10
Оценка: +1
S>Кто сталкивался?
Я сталкивался как пользователь — первые версии госуслуг примерно так и были устроены. То есть там типа фронт по SOAP забирает с сервера XML-разметку, в которой закопана структура UI вместе с client-side JS для оживления страницы, генерирует UI на основе этого XML, запускает JS. JS по SOAP подключается к серверу конкретного приложения и вытаскивает JSON-разметку, которая описывает конкретную форму; генерирует HTML на основе этой формы и вклеивает его в UI полученный на предыдущем шаге. Дальше запускается очередной JS, вытащенный в JSON, вот он уже по REST-протоколу лезет на сервер и наполняет форму конкретными данными.

В общем, смотреть на госуслуги под F12 было крайне занятно. Вопросы "почему так медленно" сразу отпадали, заменяясь вопросом "ооо, как они сумели сделать это настолько быстрым".

А вообще, инженерная мысль движется возвратно-поступательно. Наверное, если под каким-то углом на это посмотреть, то мы увидим спираль, но надо аккуратно выбирать угол.

Помнится, лет 15 тому назад я тут спорил с матёрыми разработчиками о преимуществах веб-приложений перед локальными; а теперь мы видим заход на очередной круг — давайте переизобретём динамический HTML.
Получим веб-сайт, который притворяется приложением, которое на самом деле внутри тащит с сервера не только данные, но и весь look and feel.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Backend Driven UI (BDUI) - что за...
От: Shmj Ниоткуда  
Дата: 12.12.24 10:24
Оценка:
Здравствуйте, Osaka, Вы писали:

O>Сперва нужен запускник (какое-то самодельное VMWare), обозвать его "новый броузер с нейросетями" и в нём "поддержка новых современных особо защищённых приложений".


https://github.com/divkit/divkit — это и есть такой запускник.
Re[5]: Backend Driven UI (BDUI) - что за...
От: Osaka  
Дата: 12.12.24 11:55
Оценка: +1
O>>Сперва нужен запускник (какое-то самодельное VMWare), обозвать его "новый броузер с нейросетями" и в нём "поддержка новых современных особо защищённых приложений".
S>https://github.com/divkit/divkit — это и есть такой запускник.
Это — какое-то фантасмагорическое безумие, которое надо год изучать, чтобы написать мобильное приложение из 1 окошка с кнопкой "заплатить". Аналогичный по функционалу хелловорлд на delphi или c#, показывающий формочку с несколькими контролами, будет exe размером 50кб, без 300М жабаскрипта на клиенте, и написан слева направо сверху вниз безо всяких паттернов и микросервисов.
Но ведь цель новомодных фреймворков, как мы знаем, — не повышение качества и производительности.
Отредактировано 12.12.2024 11:58 Osaka . Предыдущая версия . Еще …
Отредактировано 12.12.2024 11:57 Osaka . Предыдущая версия .
Re[2]: Backend Driven UI (BDUI) - что за...
От: DiPaolo Россия  
Дата: 12.12.24 11:58
Оценка:
Да-да, сразу вспоминается XSLT, которому сто лет в обед

У меня такое же ощущение сложилось от темы топика – что это про заход на очередной виток и возврат к идеям, которые когда-то уже использовались.
Патриот здравого смысла
Re[3]: Backend Driven UI (BDUI) - что за...
От: Shmj Ниоткуда  
Дата: 12.12.24 13:46
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>Да-да, сразу вспоминается XSLT, которому сто лет в обед

DP>У меня такое же ощущение сложилось от темы топика – что это про заход на очередной виток и возврат к идеям, которые когда-то уже использовались.

Но как ни крути — а смысл в этом есть. Ведь у человечества всего лишь 2 платформы моб. девайсов — Android и iOS. И приложения в каждой из этих платформ распространяются преимущественно через маркет. Если Android еще более демократичная, можешь сам поставить себе и скачать — то iOS такого не позволяет в принципе. А эти маркеты могут неделями проверять твое приложение. Использование такой вот системы — это единственное решение.
Re: Backend Driven UI (BDUI) - что за...
От: Qulac Россия  
Дата: 12.12.24 17:13
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S>Тут вводная: https://habr.com/ru/companies/yandex/articles/768282/


S>Вот, деды же придумали чтобы UI-формы генерились на сервере — сервер отдавал HTML смешанный с данными. Ну пусть работало только в браузере, зато всегда была последняя версия приложения.


S>Потом и сказали что формы должны генериться на клиенте, сервер отдает только концентрированные данные в виде JSON. А клиенты разные — для моб. 2 шт. и для браузера. Клиенты нужно обновлять каждый отдельно (ну разве что в браузере как бы сам обновляется).


S>Теперь это:


S>

S>Backend Driven UI (BDUI) — это концепция, при которой сервер управляет не только данными в приложении, но и формирует интерфейсы: экраны, верстку, реакции на взаимодействия пользователя и переходы между экранами. Задача клиентской стороны сводится к рендерингу экранов на основе данных, полученных с сервера.


S>Т.е., по сути, перепридумали браузер внутри браузера и внутри моб.


S>Кто сталкивался?


S>З.Ы.


Мы сталкиваемся, структура страниц передается через json а там react рисует. Ни когда не делайте так, если не хотите проблем. Это даже не выстрел в ногу, а куда-то повыше.
Программа – это мысли спрессованные в код
Re[2]: Backend Driven UI (BDUI) - что за...
От: swame  
Дата: 13.12.24 19:12
Оценка:
Здравствуйте, Qulac, Вы писали:

Q>Здравствуйте, Shmj, Вы писали:


Q>Мы сталкиваемся, структура страниц передается через json а там react рисует. Ни когда не делайте так, если не хотите проблем. Это даже не выстрел в ногу, а куда-то повыше.


А в чем выстрел, можно развить?
Re[3]: Backend Driven UI (BDUI) - что за...
От: Qulac Россия  
Дата: 13.12.24 20:21
Оценка:
Здравствуйте, swame, Вы писали:

S>Здравствуйте, Qulac, Вы писали:


Q>>Здравствуйте, Shmj, Вы писали:


Q>>Мы сталкиваемся, структура страниц передается через json а там react рисует. Ни когда не делайте так, если не хотите проблем. Это даже не выстрел в ногу, а куда-то повыше.


S>А в чем выстрел, можно развить?


В том что бек-энд и фронт-энд программистам приходится взаимодействовать между собой по более широкому кругу вопросов, в этом и проблема, а если их связывает только тоненькая ниточка из передаваемых данных, то им взаимодействовать друг с другом на много проще. Это первое, второе — такой подход просто лишен смысла, с отображением данных нужным образом легко справить программист на фронтенде и это собственно его обязанность. Использовать нужно api first подход.
Программа – это мысли спрессованные в код
Re[4]: Backend Driven UI (BDUI) - что за...
От: Shmj Ниоткуда  
Дата: 14.12.24 06:39
Оценка:
Здравствуйте, Qulac, Вы писали:

Q>В том что бек-энд и фронт-энд программистам приходится взаимодействовать между собой по более широкому кругу вопросов, в этом и проблема, а если их связывает только тоненькая ниточка из передаваемых данных, то им взаимодействовать друг с другом на много проще. Это первое, второе — такой подход просто лишен смысла, с отображением данных нужным образом легко справить программист на фронтенде и это собственно его обязанность. Использовать нужно api first подход.


У вас, видимо, какой-то свой подход. Я узнал об этом в контексте: https://divkit.tech/docs/ru/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.