
Charles
13.05.2018
21:07:17

Serhii
13.05.2018
21:07:24

Sergey
13.05.2018
21:07:40

Charles
13.05.2018
21:08:26

Google

Sergey
13.05.2018
21:08:54

Charles
13.05.2018
21:08:57
вроде

Serhii
13.05.2018
21:09:23
Даже на редакс депенденси нет
Только соблюдение интерфейса

Charles
13.05.2018
21:11:11

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

Sergey
13.05.2018
21:11:38
даа!

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

Google

Charles
13.05.2018
21:11:57
)))

Sergey
13.05.2018
21:11:59

Charles
13.05.2018
21:12:58

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

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

Sergey
13.05.2018
21:16:16

Serhii
13.05.2018
21:17:11

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

Google

Charles
13.05.2018
21:21:13

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

Sergey
13.05.2018
21:22:30
редьюсеры должны быть чистыми а 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

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

Charles
13.05.2018
21:27:04

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 и выставит нужный стэйт

Charles
13.05.2018
21:30:35
прям Promises
ну.... почти

Serhii
13.05.2018
21:31:06

Sergey
13.05.2018
21:31:16
хотя я ничему не удивлюсь

Charles
13.05.2018
21:31:50
???

Serhii
13.05.2018
21:32:10

Google

Sergey
13.05.2018
21:32:25
или о чем ты?

Serhii
13.05.2018
21:32:35
Да

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

Sergey
13.05.2018
21:32:54

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

Sergey
13.05.2018
21:33:49

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)