Логакс
99 subscribers
35 photos
40 links
Логакс — новая система связи клиента и сервера, замена AJAX, REST и GraphQL.

https://logux.org

Ведёт @sitnik из @evilmartians.
Download Telegram
Logux Redux и Logux Vuex мы будем поддерживать некоторое время, но главный сценарий использования Логакса на клиенте, брать готовые CRDT-хранилища на базе Logux State.
Начинаем трансляцию о Логаксе и моём новом стейт-менеджере Logux State.

Посмотреть через Твич: twitch.tv/kirjs
Присоединиться к разговору и задать вопросы через Google Meet: meet.google.com/bdk-davb-ibi
Запись недавнего стрима про отличия Logux State от других стейт-менеджеров и организации Логакса

https://www.youtube.com/watch?v=Igihutq9pJ4
This media is not supported in your browser
VIEW IN TELEGRAM
Вышел Logux Core 0.7.1 с исправлением переподключения.

В веб-сокетах, если сервер упал, клиенты должны переподключаться через случайные промежутки времени. Иначе она снова положат сервер подключившись в одно мгновение, так как подключение часто сложная операция (на графике такую ошибку делает Rails 6 в ActionCable).

Владимир Деменьтев из AnyCable обнаружил, что время переподключения Логакса недостаточно размазанное по времени.
https://twitter.com/any_cable/status/1417420054354972683

Мы это исправили алгоритм, чтобы распределение не съезжало в 3 колонки (как на видео).
https://github.com/logux/core/commit/e0fbb276cff5d8fba20c7a7a7865cb9203135315
Выпустили большой релиз стейт-менеджера Nano Stores 0.4 — миниалистичного (172 байта) и созданного для переноса логика из шаблонов в сторы.

https://github.com/nanostores/nanostores

В новой версии:

1. Вынесли роутер и localStorage-сторы в отдельные проекты
https://github.com/nanostores/router
https://github.com/nanostores/persistent

(Конечно, роутер должен быть в сторах, а не, например, в JSX).

2. В новой версии Nano Stores научились работать с React Native. В localStorage-стор добавили возможность сменить localStorage на другие постоянные хранилища.

3. Добавил функции update() и updateKey(), чтобы атомарно менять значение стора на основе его текущего значения.

Обратите внимание, что это функция, а не метод — стейт-менеджер стоится на идеи агрессивного три-шейкинга всего что не нужно в конкретном проекте.
В Nano Stores 0.4 много пришло из Effector.js.

— Добавили effect() и startEffect() для отметки асинхронных эффектов в сторе. С их помощью легче писать тесты — можно вызвать await allEffects(), чтобы дождаться завершения всех асинхронных операций.
— Ребята из Effector.js изучили Nano Stores и указали на проблемы в реализации, спасибо им за это.
https://github.com/nanostores/nanostores/issues/30

1. В новой версии мы исправили проблемы подписок в середине событий.
2. Diamond problem решили пока перенести на плечи разработчиков, но будет думать

Когда мы исправляли проблемы подписки во время событий изменения, то размер проекта вырос с 152 байт до 172 байта.

Хоть мы и любим нано-библиотеки, но мы не фанатики и безопасность и функции для нас важнее десятка байт размера.
К новой версии Nano Stores, @euaaaio сделал крутой логотип для проекта.

Готической фрактуры буквы «S» отсылают к стилистике проекта — каллиграфии.
https://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B0%D0%BA%D1%82%D1%83%D1%80%D0%B0

Имя релиза Nano Stores 0.4 — Zhang Xu, китайский каллиграф 8 века.

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

https://en.wikipedia.org/wiki/Zhang_Xu
Вышел Логакс Клиент 0.13. Мы перешли на Nano Stores 0.4 и обернули все асинхронные операции в эффекты.

Теперь можно заменить await delay(50) в тестах SyncMap на await allEffects() — это сделает тесты быстрее и стабильнее.

https://github.com/nanostores/nanostores#tests
Вышел Logux Client 0.13.1 — Фил Шафаржик исправил экспорт для Preact

https://github.com/logux/client/issues/75
Все репозитории Логакса перешли с Yarn 1 на pnpm. В документацию https://logux.io/ добавлены примеры на pnpm.

Хороший доклад от @valya_reads_issue, объясняющий наш переход на pnpm.
https://www.youtube.com/watch?v=RAFFHpjrwAs
Выпустили Logux Core 0.7.3 — увеличили время ожидания ответа на пинг, чтобы исправить потерю соединения в фоновых вкладках Хрома.

Для снижения нагрузку на батарею, Хром можем замораживать фоновые вкладки — setInterval и setTimeout могут вызываться не чаще ража в минуту.

Мы увеличили таймаут, чтобы соединение не прерывалось.

https://github.com/logux/logux/issues/101
Мы начали работать над хорошими примерами для Логакса.

https://github.com/logux/examples

Впереди документация и полировка примера.
Вышел Логакс Сервер 0.11.

Мы добавили сахар, чтобы легче создавать CRDT-разрешение конфликтов на сервере.
https://logux.io/node-api/#globals-addsyncmap

Все изменения.
https://github.com/logux/server/blob/main/CHANGELOG.md#011-five-pebbles=

Версия названа «Five Pebbles» в честь ИИ из очень необычной игры Rain World.
Вышли Logux Core 0.8 и мажорные релизы других компонентов экосистемы.

В них мы убрали поддержку Node.js 12 и исправили мелкие ошибки синхронизации, который нашёл Тайлер Хан.

https://github.com/logux/core/pull/49
https://github.com/logux/core/pull/50

Новая версия Logux Core 0.8 названа Ա, в честь первой буквы армянского алфавита. Это выжарение благодарности за помощь беженцам из Украины, России и Беларуси.

На иллюстрации — каллиграфия Мартина Ванескеяна.
Вместе с Logux Core 0.8 вышел Logux Server 0.12.

Мы добавили опцию disableHttpServer и отключение загрузки данные в addSyncMap.

Версия названа «Looks to the Moon» в честь ИИ из замечательной игры Rain World.