Size: a a a

Clojure — русскоговорящее сообщество

2020 May 28

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Если в приложении нет нужды на клиенте ворочать какими-то данными, то ценность SPA падает.
Даже не знаю когда такая нужда есть, но наверное иногда есть)
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Да не знаю, любой CRUD проще будет сделать без SPA
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Отвыкли просто
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Но уже сейчас есть проблема с созданием приложения в ином стиле — jQuery вроде как не нужна, а React малость тяжеловат, чтобы его на каждую страницу пихать.
Ага, я вот тоже об этом подумал: вроде хочется взять cljs для скриптов, но потом думаю нафига пользователям грузить весь рантайм когда всё рендерится на сервере.
Плюс хочется подпиливать фронт без постоянного обновления сервера
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Vlad Lisovsky
Сомневаясь в современном вебе: Том МакРайт о повсеместном применении SPA и вынужденном решении искусственно созданных проблем → https://macwright.org/2020/05/10/spa-fatigue.html
Читаю)
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
я предлагаю скинутся и всем сообществом доделать liveview-clj 🙂 в фениксе щас кайфово без SPA не только круды делать, но вообще 95% интерфейсов
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Andrew Rudenko
я предлагаю скинутся и всем сообществом доделать liveview-clj 🙂 в фениксе щас кайфово без SPA не только круды делать, но вообще 95% интерфейсов
Видел много раз liveview. Прикол в том чтобы обновлять данные на странице по сокетам?
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Отвыкли просто
В 2003 или 2004 году я начинал как верстальщик, потом стал программировать — и помнится, что все прекрасно жили без SPA. Кто-то даже пользовался PHP в терминальной стадии, когда шаблон не отделялся от разной логики. Потом вспомнили про XHR и понеслось.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Tim Plotnikov
Видел много раз liveview. Прикол в том чтобы обновлять данные на странице по сокетам?
1. менеджить вебсокет с клиентом
2. иметь стейтфул агента на сервере подключенного к этому сокету
3. автоматически менеджить лайфцаклы 1. и 2
4. анализировать темплейт и вычислять где и как там используются "переменные", соответсвтующим образом готовить метаинформацию для клиента
5. при изменении стейта понимать на какие части темплейта изменения повлияли и отправлять дифф на клиент с нужной метой
6. на клиенте принимать диффы и мержить их в нужные дом ноды
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Andrew Rudenko
1. менеджить вебсокет с клиентом
2. иметь стейтфул агента на сервере подключенного к этому сокету
3. автоматически менеджить лайфцаклы 1. и 2
4. анализировать темплейт и вычислять где и как там используются "переменные", соответсвтующим образом готовить метаинформацию для клиента
5. при изменении стейта понимать на какие части темплейта изменения повлияли и отправлять дифф на клиент с нужной метой
6. на клиенте принимать диффы и мержить их в нужные дом ноды
Офигеть. А чего пытаются достичь? Обновление дом без перезагрузки страницы?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Tim Plotnikov
Офигеть. А чего пытаются достичь? Обновление дом без перезагрузки страницы?
интерактивные интерфейсы в вебе без строчки жса (и без компиляции в жс тоже)
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
ну и не пытаются, оно работает. есть что улучшать, конечно, но в целом все отлично
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
я тут на днях игрался, склепал на коленке sql-парсер с мордочкой
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Tim Plotnikov
Ага, я вот тоже об этом подумал: вроде хочется взять cljs для скриптов, но потом думаю нафига пользователям грузить весь рантайм когда всё рендерится на сервере.
Плюс хочется подпиливать фронт без постоянного обновления сервера
js закешируется, так что на этот момент глаза можно прищурить. Как и с React. А вот подход, который накладывает React, не закэшируется.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Andrew Rudenko
ну и не пытаются, оно работает. есть что улучшать, конечно, но в целом все отлично
Да, не так выразился)
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Andrew Rudenko
1. менеджить вебсокет с клиентом
2. иметь стейтфул агента на сервере подключенного к этому сокету
3. автоматически менеджить лайфцаклы 1. и 2
4. анализировать темплейт и вычислять где и как там используются "переменные", соответсвтующим образом готовить метаинформацию для клиента
5. при изменении стейта понимать на какие части темплейта изменения повлияли и отправлять дифф на клиент с нужной метой
6. на клиенте принимать диффы и мержить их в нужные дом ноды
А 2 пункт не будет ли ограничивать? феникс же на erlang работает?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
1. менеджить вебсокет с клиентом
2. иметь стейтфул агента на сервере подключенного к этому сокету
3. автоматически менеджить лайфцаклы 1. и 2
4. анализировать темплейт и вычислять где и как там используются "переменные", соответсвтующим образом готовить метаинформацию для клиента
5. при изменении стейта понимать на какие части темплейта изменения повлияли и отправлять дифф на клиент с нужной метой
6. на клиенте принимать диффы и мержить их в нужные дом ноды
первые три в формате прототипа вполне работают и в clj версии (https://github.com/prepor/liveview-clj), а вот с эффективыми диффами нужно работать
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
А 2 пункт не будет ли ограничивать? феникс же на erlang работает?
ну на эрланге и что?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
там экторы для стейта, у нас атомы
источник