Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   $jin.atom - frp всегда с тобой (https://javascript.ru/forum/project/44781-%24jin-atom-frp-vsegda-s-tobojj.html)

DjDiablo 21.04.2014 19:14

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

tenshi 26.05.2014 01:03

Ага, только приходится руками подписываться и руками же не забывать отписываться. Атомы же абстрагируют от необходимости подписки-отписки. Прочитал значение - значит ты от него зависишь. Всё.

and_07 07.11.2014 17:27

Доброго времени суток
начинаю разбираться с данным паттерном
что давольно сложно для меня))
+ наткнулся на GitHub на такую либу (https://github.com/zynga/atom)
на мой взгляд она попроще чем ваша (на много))
так вот хотелось бы узнать ваше мнение

ftx09 22.01.2015 15:35

А как быть с контекстом выполнения? Вся связь атомов происходит в глобальном контексте, на клиенте это вкладка браузере. Обновил страницу - состояние атомов сбросил.

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

В изоморфном приложении static-переменные использовать нельзя.

Из кода непонятно, как это решено. Все атомы взаимодействуют неявно через static переменные.

melky 22.01.2015 23:16

Цитата:

Сообщение от ftx09
А как быть с контекстом выполнения

СОСТОЯНИЕМ. ты хотел сказать состоянием
да никак . либо сохранять где-то, либо ... сохранять где-то :) (localStorage)
сохранение состояния - бич объектно ориентированного программирования. а окромя ООП у нас ничего то и нету...

ftx09 26.01.2015 21:49

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

Вот оригинальный класс атома: https://github.com/nin-jin/pms-jin/b...m/prop/atom.ts
В коде есть куча static методов и переменных.

Я немного изменил атом, таким образом, что контекст можно передавать в конструктор:
https://github.com/zerkalica/frp-ato...er/lib/prop.ts

А вообще, велосипеды это все, для асинхронного управления состоянием есть менее сырые технологии: flux, nuclear-js, immutable.js


Часовой пояс GMT +3, время: 05:36.