Size: a a a

2019 September 18

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
mg901
Да и странно, от того, что ты тут про эффектор пару десятков постов задвинул, знаий у тебя о нём не прибавится
Это грустно да, потому что все обсуждения идут на уровне “понравилось/не понравилось”
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Я думаю человеку, который работал с двумя стейт-менеджерами в js и ещё парочкой в cljs можно кратко обоъяснить на уровне сходств и отличий, но похоже это слишком трудно
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
В JS каждая библиотека и фреймворк кричит о своей уникальности, никто не хочет изучать альтернативы и делать сравнение
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Только MobX молодцы в этом плане
источник

m

mg901 in JSNN 🤔 (GSNN)
ну я бы объяснил так. Это клайссичейский railway programming. где данные передаются от ивента к стору, от стора к ивенту от ивена к эффекту и тд.   Сторы (я их понимаю как анлоги Maybe монад) с дефолтным значением, чтобы не работать c null значениями. Эффекты аналоги Either монад или по просту промисы. отдают тебе данные либо выводят ошибку на параллельный поток
источник

m

mg901 in JSNN 🤔 (GSNN)
всё очень просто становится, когда это визуально себе представляешь https://miro.medium.com/max/1960/1*PSiOiF-F0-tjxL5LK2QCZw.png
источник

K

Kirill in JSNN 🤔 (GSNN)
railway programming настолько класический что даже википедия не знает что это
источник

I

Ivan [в отпуске] in JSNN 🤔 (GSNN)
Kirill
railway programming настолько класический что даже википедия не знает что это
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
mg901
ну я бы объяснил так. Это клайссичейский railway programming. где данные передаются от ивента к стору, от стора к ивенту от ивена к эффекту и тд.   Сторы (я их понимаю как анлоги Maybe монад) с дефолтным значением, чтобы не работать c null значениями. Эффекты аналоги Either монад или по просту промисы. отдают тебе данные либо выводят ошибку на параллельный поток
То есть все отличия в том, как выглядит API для разработчика?
источник

m

mg901 in JSNN 🤔 (GSNN)
да
источник

m

mg901 in JSNN 🤔 (GSNN)
ты просто управляешь потоками данных и перенапраляешь их туда, куда тебе надо. А если что-то пошло не так, выкидываешь ошибку
источник

m

mg901 in JSNN 🤔 (GSNN)
фсё
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
А если нужно какое-то ветвление в логике, по типу if-else, или в цепочке есть несколько мест для возникновения ошибки и их нужно обрабатывать по-разному?
источник

E

Evgeniy 🍀 in JSNN 🤔 (GSNN)
Sergey Smyshlyaev
А если нужно какое-то ветвление в логике, по типу if-else, или в цепочке есть несколько мест для возникновения ошибки и их нужно обрабатывать по-разному?
так это можно уже в catch отловить, в зависимости от типа ошибки.
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Большой свитч-кейс в кэтч блоке?
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
А с ветвлениями в цепочке как быть?
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Вот мне интересно, откуда такая любовь к цепочками? Вместо async/await тоже нужно цепочки .then писать?
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Цепочки же гораздо хуже читаются, это вынужденная мера для тех случаев когда нельзя писать императивный код.
источник

m

mg901 in JSNN 🤔 (GSNN)
Sergey Smyshlyaev
Вот мне интересно, откуда такая любовь к цепочками? Вместо async/await тоже нужно цепочки .then писать?
Серёг, ты ща кодом мыслишь, а не абстракцией. Какая разница, если я напишу async /await или promise? async тот ту же ошику выведет на другую цепоку или вернёт результат, ни чего другого он не делает
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Так вроде отличия только в апи, больше-то обсуждать нечего.
источник