@oop_ru

Страница 644 из 785
Charles
13.05.2018
21:07:17
Sergey
13.05.2018
21:07:40
Мне тоже. Потому и написал либу
которая делает кучу маленьких сторов?)

Charles
13.05.2018
21:08:26
набор элементов которые вместе работают как системе, а по отдельности - работают уже как-то иначе
по-другому - у них вместе (у элементов) - в конкретном своем сочетании начинается какая-то лютая срань которую они раньше за собой не обнаруживали (в другом сочетании)

Google
Charles
13.05.2018
21:08:57
Фри монады что ли
не знаю про монады я пока с фп не подружился

вроде

Serhii
13.05.2018
21:09:23
Даже на редакс депенденси нет

Только соблюдение интерфейса

Charles
13.05.2018
21:11:11
блин забыл как эта фича называется...
да, точно она - https://ru.wikipedia.org/wiki/%D0%AD%D0%BC%D0%B5%D1%80%D0%B4%D0%B6%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C

Serhii
13.05.2018
21:11:29
Моя либа позволяет иметь единый глобальный стейт приложения в редакс, про структуру которого модули могут не знать

Sergey
13.05.2018
21:11:38
эмерджентность
https://www.youtube.com/watch?v=16W7c0mb-rE

даа!

Charles
13.05.2018
21:11:48
только я бы все таки это считал признаком системы необходимым и достаточным для того чтобы ее системой вообще назвать, но это мои скудные мысли а там дяди посерьезней

во-во, да__

Google
Charles
13.05.2018
21:11:57
)))

Sergey
13.05.2018
21:13:11
а разве редакс не о том был чтоб там единый стейт???
так стэйт единый, доступ изолированный

Serhii
13.05.2018
21:13:19
клево. мы без этой штуки так делаем
Редакс реакт? Если да, то как, поделись?

Charles
13.05.2018
21:13:29
ааааа, и плюс он пропихивается вроде

Sergey
13.05.2018
21:14:12
ааааа, и плюс он пропихивается вроде
ну как сказать пропихивает, просто тригерит обновление компонентов. А те получают данные на вход как бы обновленные и ничего про стэйт не знают

Charles
13.05.2018
21:14:59
триггерит если подписаны или там в контейнер взяты, вроде как. считай тот же mobx. короче вроде понял

компоненты потому что в реакте "глупые", только из-за этого

хоспаде откуда я это знаю я ж бакэндер

Sergey
13.05.2018
21:15:31
компоненты потому что в реакте "глупые", только из-за этого
ну тип того, их задача запродьюсить DOM, как вы это любите

Charles
13.05.2018
21:15:51
вот хватит ко мне на "вы", я вообще на фронте не работал)))

Sergey
13.05.2018
21:16:16
вот хватит ко мне на "вы", я вообще на фронте не работал)))
не, это тип отсылка, кто знает тот поймет)

Sergey
13.05.2018
21:17:28
Serhii
13.05.2018
21:18:55
кинет экшен (функция в пропсе)
А миддлвейр если надо?

Sergey
13.05.2018
21:18:59
ну блин, это ж не рокет сайнс. компонент порождает экшен (команду), которую ловит некий листенер, который продьюсит сайд эффект (лезет на сервак например) и кидает свой экшен (ивент), который ловит редьюсер, который компилит новый стэйт детерминированно, который тригерит апдейт компонента. Иногда момент с командой излишний и тогда у тебя не два экшена (load и loaded) а один, и тогда только редьюсер вообще без сайд эффектов

А миддлвейр если надо?
ну это все часть редьюсеров, они ж как композиция функций идут

Serhii
13.05.2018
21:20:37
ну это все часть редьюсеров, они ж как композиция функций идут
Да, до тех пор, пока тебе не понадобился setTimeout

Google
Charles
13.05.2018
21:21:13
Serhii
13.05.2018
21:21:30
Так что миддлвейры, как концепция, все же нужны

В т. ч. модулям

Sergey
13.05.2018
21:22:30
Да, до тех пор, пока тебе не понадобился setTimeout
setTimeout это относится к той части которая про команды, не надо их в редьюсеры

редьюсеры должны быть чистыми а setTimeout - это та "недетерминированная" часть которую мы туда пихать не хотим. У нас для этого хэндлеры экшенов есть (что-то типа листенеров)

Serhii
13.05.2018
21:23:10
это вообще отдельная тема
Это пример. Моя либа делает модульные миддлвейры

Charles
13.05.2018
21:23:25
или это транзишн вложенного стейта который может быть инттеррьюпт

если мы про таймаут

Sergey
13.05.2018
21:23:42
просто вводим не один а два экшена - начало операции и завершение операции.

Charles
13.05.2018
21:24:02
блин что тогда вообще считать редьюсером

Sergey
13.05.2018
21:24:04
можно еще третий что бы компенсировать неудачи, мол зафэйлилось

Serhii
13.05.2018
21:24:16
или это транзишн вложенного стейта который может быть инттеррьюпт
Это триггер изменения стейта по таймауту - не вижу проблем

Sergey
13.05.2018
21:24:31
блин что тогда вообще считать редьюсером
проще всего аналогия с event sourcing работает.

Charles
13.05.2018
21:24:32
да, это чего ты так решил?
я про то что почему что ты не думаешь что это не запуск прерываемого перехода глобального стейта?

Sergey
13.05.2018
21:25:23
редьюсеры должны иметь возможность всегда имея один и тот же стрим экшенов зарепродьюсить одинаковый стэйт. В этом их основная фича.

в контексте event sourcing ту же роль выполняют проекторы

Charles
13.05.2018
21:25:57
пойду про event sourcing читать, я видать отстал от жизни

Serhii
13.05.2018
21:26:19
да, это чего ты так решил?
Просто пытаюсь уложить все в концепцию автоматов (без сайд эффектов)

Google
Charles
13.05.2018
21:26:32
у меня прост uml state machine в голове и то о чем писал Миро Самек, там все не так просто

Sergey
13.05.2018
21:26:40
Просто пытаюсь уложить все в концепцию автоматов (без сайд эффектов)
setTimeout это и есть сайдэффект, либо я не понимаю о чем ты

Charles
13.05.2018
21:27:04
Просто пытаюсь уложить все в концепцию автоматов (без сайд эффектов)
так вот я про это и написал, UML стейт машины ты смотрел? там много вариаций как можно такие вещи как установку таймера трактовать, в том и вопрос

Serhii
13.05.2018
21:27:44
просто вводим не один а два экшена - начало операции и завершение операции.
Правильно. А где регистрируется завершение? Не в миддлвейрах

Charles
13.05.2018
21:27:52
ровно как и то что установка таймаута может быть уже переходом в новый стейт а там onEnterAction - setTimeout

Sergey
13.05.2018
21:28:26
ну то есть... либо я не понимаю что значит "регистрируются"

Charles
13.05.2018
21:28:46
или например OnEnterAction это setTimeout при этом мы говорим не о новом состоянии а о транзитном состоянии

Sergey
13.05.2018
21:28:47
"завершение" у меня это новый экшен, который сингализирует что все ок или не ок

Charles
13.05.2018
21:28:52
помолчу вас послушаю

Sergey
13.05.2018
21:29:11
ну типа.... loadData -> dataLoaded / dataFailedToLoad

редьюсеры могут на loadData выставить стэйт мол "грузится", компонент по этому делу может спиннер начать показывать, а потом редьюсер словит dataLoaded и выставит нужный стэйт

Sergey
13.05.2018
21:31:16
У меня так же.
ну по другому было бы глупо)

хотя я ничему не удивлюсь

Charles
13.05.2018
21:31:50
???

Serhii
13.05.2018
21:32:10
или например OnEnterAction это setTimeout при этом мы говорим не о новом состоянии а о транзитном состоянии
Предлагаешь миддлвейры исключить из редакса, как концепцию за ненадобностью?

Google
Serhii
13.05.2018
21:32:35
Да

Charles
13.05.2018
21:32:40
нет, я не предлагаю. я скорее намекаю на то что редакс это достаточно однобокий автомат

Charles
13.05.2018
21:32:56
как минимум там нельзя вложенность в нормальном виде, которые HFSM

Sergey
13.05.2018
21:33:08
хотя не уверен что подойдет)

Charles
13.05.2018
21:33:20
эммммм.... довольно страшная вещь на самом деле

и скорее про сайд эффекты

как раз таки

короч эт не то

Sergey
13.05.2018
21:33:38
хз, в целом то что я описал выше и есть саги)

Serhii
13.05.2018
21:33:38
Charles
13.05.2018
21:33:51
ну ты что бота ни разу не писал чтоле

пример самый простой

бот - верхние уровни логики - стрелять, идти, стоять на месте в обороне - внутренние - пистолет, перезарядить, не перезарядить

вот тебе и вложенность

Sergey
13.05.2018
21:35:05
ммм..... я бы не стал redux для этого применять)

Charles
13.05.2018
21:35:15
а там другого нет блен

Sergey
13.05.2018
21:35:17
тут всякие entity-component-system)

Страница 644 из 785