powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Java/Kotlin серверный React
46 сообщений из 46, показаны все 2 страниц
Java/Kotlin серверный React
    #39986403
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классический способ написания UI как Swing и т.п. - это MVC где есть 2 типа функций рендеринга - 1) функция которая рендерит начальное состояние UI 2) множество функций обновления UI, которые по реакции на события и обновления модели обновляют UI

Так работали наверно 95% всех UI фреймворков во всех языках программирования и 100% в JS.

Когда вышел React он произвел революцию, поскольку он не требует создания обработчиков 2го типа, и делает это все сам автоматически (благодаря Reconciliation). С реактом можно выкинуть из проекта большую часть самого сложного кода - всю эту кучу методов которые слушают состояние модели и обновляют UI, и которые раньше надо было писать вручную. В реакте на любое событие - весь UI рендерится с нуля, затем риакт сравнивает старый и новый UI и САМ определяет как изменить старый UI чтобы он стал новым.

Про скорость такого подхода, когда на каждое нажатие клавиши в поле ввода - вызывается полная пере-рисовывка всего UI - риакт использует ряд оптимизаций, он умный и в реальности там перерисовывается только изменившийся компонент и его паренты, но это уже второстепенные детали.

Итак - Риакт произвел революцию убрав кучу тупого обезьяньего кода. Далее добавились Angular, Vue и Svelte. Они тоже (условно конечно)работают примерно также и убирают необходимость писать тупой обезьяний код.

Тем не менее - Реакт не решает второй огромной проблемы - распределенной системы. Поскольку в отличии от скажем PHP или Сервлетов где вся логика на сервере, с Риактом теперь она у нас размазана по Серверу и Браузеру, и нам надо дублировать модели, создавать АПИ и коммуникацию между сервером и клиентом иметь разные валидации на клиенте и сервер. Опять приходится поддерживать кучу тупого обеьзяньего кода.

И тут появился Elixir Phoenix LiveView - по словам создателя сделал он его совершенно случайно, подумав а что если переместить код реакта на сервер. Переместить весь клиентский код на риакте из Браузера на сервер, а события (как нажатие клавиши) сериализовать и передавать на сервер по вебсокету, и расчет реакта (работающего на сервере) об изменении HTML DOM также сериализовать и отправлять в браузер. Соответственно браузер превращается во что-то типа Терминала или Удаленного Стола. Клиентское приложение на риакте в реальности работает на сервере (стейтфул), там-же на сервере рендерится ХТМЛ, а в браузер просто посылается его копия. Т.е. ни кода ни логики в браузере почти нету.

(Не путать с server-side react rendering, progressive rendering, enchancement и т.п. - это не имеет ничего общего с этим подходом и нужно для ускорения открытия страницы и загрузки риакта, там риакт рендерится на сервере только для загрузки а затем запускается на браузер и работает дальше как обычный риакт, в то время как Elixir Phoenix LiveView - риакт вообще никогда в браузер не загружает).


Как оказалось подход работает неожиданно хорошо https://dockyard.com/blog/2018/12/12/phoenix-liveview-interactive-real-time-apps-no-need-to-write-javascript (там тоже ряд оптимизаций кому интересно посмотрите на ютубе презентацию где детально рассказывается как все работает)

Нахрена все это нужно? Потому-что убирается распределенная система, выкидывается больше половины кода, поскольку больше нет раделения на клиентский и серверный код, нет проблемы N+1 запросов, не нужно АПИ и т.п.

Короче вопрос - что из этого есть в Java / Kotlin

П.С.

Не упоминать GWT, Vaadin, kweb, Wicket, teavm и т.п.

Должно быть 2 веши

1) Декларативный рендеринг, без необходимости писать вручную как изменять UI на реакцию на события
2) Фреймворк должен работать на сервере, не на клиенте
3) (думаю само собой понятно, но все-же) Это не Servlet, Spring, JSP, JSF и т.п.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986408
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просьба не отвлекаться от дискуссии вопросами о производительности, задержки по сети и нагрузке на сервер при таком подходе, эти проблемы существуют, но если их интересно обсудить - лучше создать отдельный топик, не в этом.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986412
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нифига не понял.

Но например Oracle ADF - все программируется на сервере, JavaScript вообще не нужен, он под капотом контролов спрятан.
Подозреваю остальные Java Server Face фраймворки примерно так же.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986426
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это классический MVC (контроллера для простоты), есть модель - счетчик, метод который рендерит страницу, и метод который обновляет страницу когда меняется модель. Так работает Swing, и все старые JS фреймворки до реакта.

Код: java
1.
2.
3.
val count = 1
fun render (count: Int): String = "<body>${count}</body>"
fun on_change (count: Int): String = document.body.innerHtml = count


А вот так будет выглядеть код на Риакте (реакт имеется ввиду концепция, не фреймворк React.JS).
Кусок обезьяньего кода выкинули on_change, но работать будет все так-же интерактивно как и раньше. Потому-что риакт сам знает когда нужно выполнить код обновления UI и сделает этот вызов "document.body.innerHtml = count" автоматом.

Код: java
1.
2.
val count = 1
fun render (count: Int): String = "<body>${count}</body>"


А Elixir Phoenix LiveView или серверный реакт - это когда все это запущено на сервере, на JVM с Java/Kotlin но при этом показывется в браузере и работает так-же интерактивно и быстро, словно это клиентское приложение сделанное на риакте.

Серверный риакт - это как браузер который запущен на сервере (на самом деле только умный алгоритм рассчета изменений дерева компонентов), все вычисления и UI крутится внутри сервера, а в реальный браузер транслируется просто копия его текущего HtML, типа как удаленный рабочий стол, или старые десктопы-терминалы на майнфреймах.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986427
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(контроллера для простоты убран)
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986430
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо например Oracle ADF - все программируется на сервере, JavaScript вообще не нужен, он под капотом контролов спрятан.
Подозреваю остальные Java Server Face фраймворки примерно так же.

Там нужно вручную писать код - как менять UI в ответ на события. Это старые фреймворки. Собственно "react" называется так из-за реактивности - словно там есть магия когда изменения модели автоматически, реактивно, сами по себе меняют интерфейс. Как в Excell - ты изменил код в одной ячейке - и в других зависимых ячейках все автоматом поменялось. Реакт делает то-же самое для интерфейса, обновляет его автоматически.

А в фреймворках предыдущего поколения - Java Server Face и еще сотен других - это все надо писать вручную.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986433
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private
авторНо например Oracle ADF - все программируется на сервере, JavaScript вообще не нужен, он под капотом контролов спрятан.
Подозреваю остальные Java Server Face фраймворки примерно так же.

Там нужно вручную писать код - как менять UI в ответ на события. Это старые фреймворки. Собственно "react" называется так из-за реактивности - словно там есть магия когда изменения модели автоматически, реактивно, сами по себе меняют интерфейс. Как в Excell - ты изменил код в одной ячейке - и в других зависимых ячейках все автоматом поменялось. Реакт делает то-же самое для интерфейса, обновляет его автоматически.

А в фреймворках предыдущего поколения - Java Server Face и еще сотен других - это все надо писать вручную.

В Oracle ADF можно вообще код не писать. Компоненты на экране (описание в XML) сами рендерятся и отображают данные (из базы). Ну и само по себе ничего не бывает ))).

Вполне есть компоненты, которые в онлайн режиме умеют data pump с сервера приложений (базы) делать (например графики/индикаторы в реальном режиме времени для BI или Business Process Analysis), но я с ними детально не разбирался (использовал для индикации метрик, кинул на экран они и заработали)
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986438
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередное изобретение колеса

1) функция которая рендерит начальное состояние UI

Нормальные Framework'и все же работают как компоненты (JSF). Положил компонент, он что-то отображет. Собирать HTML руками.... что же это за фраймворк такой (((

2) множество функций обновления UI, которые по реакции на события и обновления модели обновляют UI

Что значит "обновления модели обновляют UI" мне не понятно. Есть у меня данные в базе, их поменяли с другого компьютера, кто и что должен обновлять и зачем?

Обычно изменение UI происходят по причине изменения состояния со стороны пользователя.

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

Ну да, это нужно кодировать. Зависимым контролам нужно свойства Enabled менять с True на False и наоборот. Можно на Java, можно формулами (в ADF можно без Java, просто в свойство Enabled написать формулу ссылающуюся на какие-то данные, но мы старались делать на Java - нам так было понятнее).

А в фреймворках предыдущего поколения - Java Server Face и еще сотен других - это все надо писать вручную.
Какое-то жуткое лукавство.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986440
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Очередное изобретение колеса

1) функция которая рендерит начальное состояние UI

Нормальные Framework'и все же работают как компоненты (JSF). Положил компонент, он что-то отображет. Собирать HTML руками.... что же это за фраймворк такой (((

2) множество функций обновления UI, которые по реакции на события и обновления модели обновляют UI

Что значит "обновления модели обновляют UI" мне не понятно. Есть у меня данные в базе, их поменяли с другого компьютера, кто и что должен обновлять и зачем?

Обычно изменение UI происходят по причине изменения состояния со стороны пользователя.

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

Ну да, это нужно кодировать. Зависимым контролам нужно свойства Enabled менять с True на False и наоборот. Можно на Java, можно формулами (в ADF можно без Java, просто в свойство Enabled написать формулу ссылающуюся на какие-то данные, но мы старались делать на Java - нам так было понятнее).

А в фреймворках предыдущего поколения - Java Server Face и еще сотен других - это все надо писать вручную.
Какое-то жуткое лукавство.

Совсем с react не знаком?
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986443
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы уходим от дискуссии, как работает риакт я описал, кто не знаком с риактом и если интересны детали - они есть на официальном сайте реакта.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986444
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается серверного реакта - то (на мой взгляд) идея полнейшее дерьмо. Помимо того что возникают очевидные проблемы с производительностью, то еще теряется преимущество адаптации контента под другие платформы. Что если я хочу использовать тот же бэкэнд для мобильного приложения и веб-приложения? Терминала, умных часов или телевизора? На кой вообще этот html.

А вот react на клиентской стороне - вполне жизнеспособен, не совсем понял описанных проблем с ним. То что модель дублируется, это все?

Не знаю как в котлинах и java, а например на скала можно использовать обычную скалу на сервере и scalaJS на клиенте, и модель будет правиться только в одном shared модуле. Кстати scalaJS имеет поддержку react, только он к тому же еще и становится типизированным. Я не делал production-ready проектов на этой связке и лично мое мнение что там еще конечно сыровато, но вполне себе вариант. Я давно не получал такого кайфа от кодинга веб-приложения(для собственных нужд), когда фронт-энд типизированный на том же языке, что и бэкэнд и это не ублюдочный яваскрипт.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986450
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорош подход или нет - зависит от задачи, понятно что если приложение посещают десятки миллионов и бабло льется рекой - нужно делать нативно.

Но если это скажем заказные проекты, сокращение кода раза в 3 - и соотв. сроков, усилий и затрат - это хороший вариант.

Про варианты с Kotlin в браузере да есть варианты, но вопрос в том как полностью убрать код на клиенте .
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986456
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник

Совсем с react не знаком?

Знаком, делал с его помощью админку года 4-и назад. Только смысл сравнивать теплое и мягкое?
JavaScript с клиентским HTML DOM'ом и, например, более-менее нормальные framework'и

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

Что MS Access, что Oracle Forms, что Oracle ADF - положил компонент, как он рендерится, дело исключительно фраймворка.

Ну сделали нечто __похожее__ на client react на стороне серверу - ну молодцы. Еще одним сайтом с гордой вывеской "мы изобрели новый, самый лучший и молодежный фраймворк" стало больше. На деле, все по отдельности уже было лет 15-20 назад

Например с их сайта:
We’ve heard for years that server-rendered HTML is a thing of the past for rich applications, and besides, how fast can an application be if it has to render the entire template on the server on every change?
Жуткое лукавство.

then only the dynamic parts that have changed on update
Что древний Oracle OAF, что Oracle ADF - ровно так же посылают только изменения.

По скорости - проблема со скоростью в Java EE не рендеринг, а жуткое потребление памяти и тормоза на бинах IMHO

powered applications are stateful on the server with bidrectional communication via WebSockets
Опять таки не новость. Такие библиотеки существуют уже лет 10-15
Если я не ошибаюсь (сам не работал, только доки просматривал)
https://ru.wikipedia.org/wiki/ADempiere
https://ru.wikipedia.org/wiki/ZK

IMHO & AFAIK

p.s. Называть фремворком нечто, заточенное исключительно под рисование HTML.... б№;%... 2020 год (((
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986478
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,
Бэк и фронт в одно целое это писать против ветра.
Пример - конвейер = разделение труда.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986483
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ZK-фреймворк нет клиентской части (то что нужно), но в ZK-фреймворке нет реактивности.

Изменение UI происходит императивно, за счет прямых манипуляций с компонентами интерфейса, вот кусок кода из его примера, это классический MVC, Swing UI и еще наверно десятка таких-же.

Код: java
1.
2.
3.
4.
5.
6.
7.
...
button.addEventListener("onClick", new EventListener() {
  public void onEvent(Event event) throws Exception {
    Messagebox.show(System.getProperty(input.getValue())); // <= императивное изменение состояния компонента
  }
});
...



Вот собственно с википедии страницы ZK-фреймворк и указывается что это событийный-компонентный фреймворк.

автор... создавать полноценные пользовательские интерфейсы для веб-приложений без применения JavaScript, в событийно-ориентированной парадигме и компонентной модели ...

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

В предыдущих постах вы привели 2 вещи, каждая из которых содержит только 1 част из 2х:

- (присутствует клиент) react-подобный клиентский фреймворк, где пишешь на котлине и потом все это генерируется в JS, они реактивные, но там есть сложности с распредленной системой, там есть разделение на браузер и сервер.
- (отсутствует реактивность) ZK-фреймворк - все делается на сервере, клиента нет, но нет реактивности.

Мне нужно чтобы было и то и другое (как например в Elixir Phoenix LiveView) :).
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986488
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что есть палитра готовых компонентов в ZK и Oracle ADF - это безусловно хорошая вешь, большое улучшение по сравнению с чистым HTML и JS, с ними работать гораздо легче, как десктопное приложение в Дельфи получается .

Но реактивность - это другой уровень, это еще лучше.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986489
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реактивность работает точно также с такими-же палитрами готовых компонентов, там тоже не нужно писать базового HTML, примеры с HTML на риакте - просто чтобы просто было и понятно о чем реч. В реальности в react.js никто не пишет HTML, берется готовая или делается с нуля палитра компонентов - точно такая-же как oracle adf - и точно-также быстро из готовых блоков строится. Только оно еще ко всему прочему и реактивное.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986491
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, нужна реактивность на сервере. А не реактивность только на клиенте (с JS подобными клиентскими Kotlin фреймворками), или на сервере но только событийность, без реактивности (ZK, Oracle ADF).
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986493
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,
Понятие реактивность на бэке не совпадает с этим же словом на фронте.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986494
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К слову - React - это не веб-фреймворк, понятно что основная движуха идет в вебе, и 90% проектов это хтмл и жаваскрипт. Но вообще это абстрактный алгоритм обновления компонентного дерева в соответствии с заданной моделью. Он работает где угодно, начиная от веба и заканчивая swing, мобильными нативными деревьями компонентов и т.п. на любых языках и с любыми компонентами.

Собственно то что отсутствует в ZK фреймворке - этот самый алгоритм - который автоматически обновляет компонентное дерево в соответствии с изменившейся моделью.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986495
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
реактивность точнее, фреймворк - react.js это реализация этой идеи и алгоритма для хтмл и жаваскрипта.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986497
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще наверно прийдется умерить желания и поближе посмотреть на компонентные фреймворки ZK и Vaadin.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986499
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще в ZK и Vaadin уже есть 90% того что нужно, нет только самого алгоритма сравнения соответствия дерева интерфейса с моделью.
Сам то он простой, но вот чтобы он эффективно работал нужна возможность быстрого сравнения обьектов.
А это можно сделать только если они иммутабельные. Соотв такой алгоритм в ZK и Vaadin потребует использования иммутабельных структур данных в моделях. И у них видимо часть пользователей к этому не готова и не обрадуется, возможно поэтому и не делают.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986502
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

- react js это либа для рендеринга. Как шаблоны. Всё
- реактивное программирование это стримы
Как тебя торкнуло что ты смешал одно с другим?
Понятно что в шаблонах нет состояния. Нет событий. Это хорошо?
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986503
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под спойлером, т.к. все это уже писал Выше

Я не очень понимаю, чем ADF (JSF) не реактивные

1. Создаем Business Object VO_Users на таблицу Users
2. На Page кладем Table связываем с VO_Users
Можно вообще код не писать. Нужен только автогенеренный BO, для Page вроде код вообще не обязателен (могу ошибаться).

Если нужна реактивность: говорим VO_Users.executeQuery - данные появляются, меняем данные в VO_Users - данные меняются.... куда уж больше

В общем, Ваш "классический способ написания" я вообще не понимаю. Вот пишу я сейчас на Oracle Forms ))), оно конечно не Java, но у меня ВООБЩЕ НЕТ "функций рендеринга". Делал приложения на Oracle ADF - аналогично. Методы рендеринга конечно есть... но это такие дебри и потроха фреймворка, что нормальные люди туда вообще не лезут.

Классический способ написания UI как Swing и т.п. - это MVC где есть 2 типа функций рендеринга - 1) функция которая рендерит начальное состояние UI 2) множество функций обновления UI, которые по реакции на события и обновления модели обновляют UI


Мне это напоминает приложение моих коллег на QT. Где на каждый change text-item'а в каждом text-item'е написано
UPDATE table SET field = :value
в Вашем описание очень похоже, только "наоборот" ))). Но, извините, это совершенно НЕ "классический способ написания UI"

IMHO & AFAIK


Если же говорить про определение Реактивное программирование из Вики, то нафига это через задний проход ташить в классический ООП язык типа Java. Понятно, что на скриптовом языке такие зависимости значительно проще, понятнее и логичнее описываются. В Java же это будет требовать 100500 абстракций одна поверх другой.
абстракция Listener - реактивность по Java'вски. И что? удобно? сколько будет кода если ее в каждый объект пихать.

В реальности в react.js никто не пишет HTML, берется готовая или делается с нуля палитра компонентов
1. Сомневаюсь. что готовые палитры компонентов запустятся на рекламируемом Вами server side react'е
2. делается с нуля - ну и где профит от "модно-молодежно"?
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986504
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private
потребует использования иммутабельных структур данных в моделях

Опять таки, я не понимаю, что Вы понимаете под понятие "model".

В ADF (или в ADemphire) это данные в базе или бины.

Соответственно в модели они уже представлены целым набором "интелектуальных" сущностей Table/View, Record, Field Value. Даже field value представляет из себя как минимум два значения old и new.

Никто "сферическими" структурами данных не оперирует. Если мутабельные данные меняются, то они всегда могут вызвать соответствующий Listener, который обновит соответствующие GUI компоненты. Ну или один раз в refresh сделать copy предыдущего дерева данных и сверять его с текущим (т.е. требуется просто реализовать set и get для бина).

IMHO & AFAIK

Проблема как раз в том, что бы набор "компонентов" был достаточно большим, крассивым и желательно безглючным (((
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986557
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private

Про скорость такого подхода, когда на каждое нажатие клавиши в поле ввода - вызывается полная пере-рисовывка всего UI - риакт использует ряд оптимизаций, он умный и в реальности там перерисовывается только изменившийся компонент и его паренты, но это уже второстепенные детали
Ну да, "второстепенные", я в одном проекте участвовал, там UI пребывал в состоянии постоянной оптимизации, при этом коннекторы нужно было писать "особым" образом, чтобы не дай бог компоненты на чужие изменения не реагировали. А так да, все вполне революционно: нужно пользакам раздать революционные процессоры и видеокарты, чтобы у них хоть как-то ворочался UI из 10-ка элементов, жалко только революционных батарей для мобильных пользователей еще никто не изобрел
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986562
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

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

ИМХО на бакенде сложности и без UI хватает.
Поэтому так стремительно взлетела идея REST-API (хотя в большинстве случаев, то что выдают за REST-API, к REST имеет мало отношения)
Т.к. бакенд просто отдает/получает данные, по запросу.
Ну или просто отдает/получает данные по вебсокет.

И все довольны.
У фронтендеров есть работа.

А бакендерам не приходиться переписывать слой представления под каждую платформу.
Т.к. API один, как для веба, так для мобилок, так и для интеграции.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986673
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторхотя в большинстве случаев, то что выдают за REST-API, к REST имеет мало отношения
Потому что REST понятие очень растяжимое. Не потрудились создатели сделать чёткое определение.

По теме: SPA вершина эволюции гуёв. Вам просто не нравится JavaScript. А надо полюбить его, он хороший уже довольно много лет.
И он убъёт Яву допольно скоро. Просто потому что он намного более продвинутый стал и им гораздо больше людей пользуются (а значит больше бабок доступно для развития именно этой платформы).
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39986823
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это gwt переизобрели?
нет ?
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987287
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрю Котлин второй день - бомба. Фактически, если не рассматривать отличия в грамматике/синтаксисе - концептуально получисля улучшенный руби.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
list.filter { it > 0 }

p(items.fold(0) { acc, i -> acc + i })

(1..10).map { p(it) }

val fn: (Int, Int) -> Int = { acc, i -> acc + i }

to_list(1, 2) + 3
to_list(1, 2) - 2

operator fun <V> List<V>.get(range: IntRange): List<V> = this.slice(range)
list_of(1, 2, 3)[1..2]



Вобщем - классно, много хороших вещей.

Единственно я не понял что они замышляют с инициализацией массивов и мэпов. Я так понимаю у команды котлина мозговые штурмы наверно идут уже наверно лет 5 не прекращаясь = какие скобочки использовать [1, 2] илл {} или еще что-то. Вероятно можем ждать от них самого невероятного прорыва 21 века в области нотации для инициализации коллекций.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987288
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибся темой, сори
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987290
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОпять таки, я не понимаю, что Вы понимаете под понятие "model".

Нет, Смысл реактивного программирования в том что весь этот хлам вообще выкидывается.
JavaRx - это не реактивность, это скажем так - некая попытка реализовать что-то вроде реактивности на жаве, на мой взгляд весьма убогая если сравнить с Elm или Svelte.

React.JS - это тоже не настоящая реактивность а ее подобие, но хоть и не настоящая, сделана достаточно хорошо. Единственно требует чтобы данные были иммутабельны.

А что такое модель - `var count = 1` - вот это модель, весь хлам типа бинов, листенеров, JavaRx и т.п. - не нужен. Любые данные языка могут быть моделью.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987291
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ ADF (или в ADemphire) это данные в базе или бины.

Вот из этого ничего не нужно. ADF пытается закрыть проблему за счет готовых компонентов, которые каким-то образом прячут событий и их обработки внутри. Реактивный подход - убирает эту сложность. В риакте - я меняют число `count += 1` - и все что где-то как-то использует его напрямую, или не напрямую - автоматически обновляется. Без каких-то бинов, RxJava, лисенеров и т.п. костылей.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987292
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
list.filter { it > 0 }

p(items.fold(0) { acc, i -> acc + i })

(1..10).map { p(it) }

val fn: (Int, Int) -> Int = { acc, i -> acc + i }

to_list(1, 2) + 3
to_list(1, 2) - 2

operator fun <V> List<V>.get(range: IntRange): List<V> = this.slice(range)
list_of(1, 2, 3)[1..2]



И что тебя так удивило? В скале это уже лет 8, при чем кое что даже лаконичнее на мой взгляд

Код: java
1.
2.
3.
4.
5.
6.
list.filter(_ > 0)

p(items.fold(0)( _ + _))


val fn: (Int, Int) -> Int = _ + _



Разве что этого нет.
Код: java
1.
list_of(1, 2, 3)[1..2]


Хотя накой оно надо в ФП языке.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987294
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По языку-котлину - я ошибся темой и запостил сюда, обсуждение по котлину в соседней ветке, пожалуйста не пишите сюда комменты о котлине.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987332
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

Давай меньше теории и ближе к практике.
Реактивное программирование что то говорит про ГУИ и компоненты?
Где? Дай ссылку.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987536
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот целое видео
YouTube Video
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987539
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В реакте это менее очевидно, идея реактивности реализована не на уровне языка, а с костылями в виде фреймворка, больше кода и обвеса, но принцип тот-же.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987541
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elm и Svelte это идеалы, но их сложно реализовать, и в ближайшее время в Java ничего подобного не будет, а React - практичная и достаточно простая концепция которая при минимальной сложности и простой реализации - дает большую часть преимуществ и мало минусов.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987544
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private
А что такое модель - `var count = 1` - вот это модель, весь хлам типа бинов, листенеров, JavaRx и т.п. - не нужен. Любые данные языка могут быть моделью.

Значение атомарного типа на стеке модель?
Оригинально.
private

В риакте - я меняют число `count += 1` - и все что где-то как-то использует его напрямую, или не напрямую - автоматически обновляется.

В Java, по окончанию функции, count становится муссором и все... что где-то как-то используется идет лесом
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987553
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,
Лучше ссылку дай, а не видео))
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987603
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ Java, по окончанию функции, count становится муссором и все... что где-то как-то используется идет лесом
Поэтому я и написал что настоящая реактивность типа Elm и Svelte в Java невозможна.
Есть либо перегруженные, неудобные поделки типа RxJava и т.п.
Либо модель React.JS - которая достаточно хороша и достаточно просто реализуема.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987618
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,
Угу. И сама реактивность тоже имеет недостатки.
Лучше за ФП топи. За своего сойдешь.
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987621
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Риакт и есть ФП. Иммутабельный, декларативный, и без сайд-эффект.

Весь риакт - это одна функция, причем чистая, без сайд эффектов.

fun render(model: AnyDataStructure) -> HtmlTree
...
Рейтинг: 0 / 0
Java/Kotlin серверный React
    #39987626
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,
Ну и живут эти Обе парадигмы в сторонке. Никому не мешают.
Ни на что не претендуют
...
Рейтинг: 0 / 0
46 сообщений из 46, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Java/Kotlin серверный React
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]