
Charles
13.05.2018
21:35:30
оу оу оу палехче)
на самом деле со стейтом понятно почему он один - потому что это одна юзерская сессия
но Абрамов немного доблбо3б и просто приплел оху3нную тему не совсем полностью - ну точнее не продумал сразу такие варики

Serhii
13.05.2018
21:37:43

Google


Charles
13.05.2018
21:37:58
поэтому сейчас это выглядит как типа не буду я делать один кабинет с терминалом для получения бланков для получения услуги, а буду я делать офис на 100 окон в котором будут 100 операторов для получения любой услуги. короч надо вкладывать вещи типа Date.now в тот же уровень в котором например будет user.loggedIn
там ж были вложенные стейты вроде?
ща короч ссылку тебе найду, там дальше сам
стара как мир, и да, там не только HFSM но и вложенные автоматы - http://aigamedev.com/open/article/hierarchical-or-nested-fsm/
там короч вся разница - вложенные стейты или вложенные автоматы. со вторым сложнее, сильно, это уже уходит в ИИ. но в принципе - не суть, я сам писал первое, после этого то что я вижу в stackoverflow по редаксу и вообще в чатиках по нему же, говорит о том что редакс ущербен, к сожалению - но и охуен3н потому что простой для тех задач для которых он создавался
более того, если ты прочтешь справочник UML 2 версии и походишь по ссылкам - и реализуешь - там понятно будет что вообще выносить экшны на уровень выше (как в случае редакса) - как минимум плохое архитектурное решение
может, это мое ИМХО, если что - коллеги скажут
но мне кажется так


Serhii
13.05.2018
21:43:10
Потому я за глобальный стейт

Charles
13.05.2018
21:44:17
ну вот в том-то и жопа что нельзя и то и то, приходится выбирать между тем и тем. поэтому и говорю что редакс этом плане ущербен

Serhii
13.05.2018
21:44:21

Google

Charles
13.05.2018
21:44:46
я прочту, но ты мне скажи - что ты с этого получил?
если кучу перцептронов то поздравляю. ты изобрел switch ... case) ну, по сути

Serhii
13.05.2018
21:47:26
Например, у меня есть автомат игрока, который не знает о структуре стейта игры. А в игре несколько таких игроков (это мой кейс)

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

Serhii
13.05.2018
21:55:13

Charles
13.05.2018
21:55:43
я уже написал дальше, сорян)

Serhii
13.05.2018
21:58:27
вот нахера?
Чтоб не было в коде привязки к тому, какой именно это игрок. Я заметил, что без этого проверка индекса игрока слишком часто возникает в коде - разве это гуд?

Charles
13.05.2018
21:59:24
ок, в твоем случае стейт - это стейт игрока который играет?
глобальный стейт

Serhii
13.05.2018
22:07:29
глобальный стейт
Глобальный стейт - стейт приложения - пока что это игра, потом добавлю конфиги в стейт. Легко расширять, когда не привязан к структуре глобального стейта
Игрок - это лишь вложенный автомат. Моя либа позволяет прокинуть редакс интерфейс игроку, чтоб тот мог триггерить изменения своей части стейта

Charles
13.05.2018
22:08:35

andretshurotshka?❄️кде
14.05.2018
03:38:05
@zerobias чекни hfsm

Aleh
14.05.2018
07:10:41

Charles
14.05.2018
08:48:36

Google

Дмитрий
14.05.2018
09:33:10

andretshurotshka?❄️кде
14.05.2018
09:35:42

Дмитрий
14.05.2018
09:43:49
Там просто fsm
Где ты видел fsm которые вкладываются и пересчитываются друг относительно друга?)

dima
14.05.2018
09:44:47
чем отличаются Hierarchical Finite State Machine и Nested Finite State Machine ?

Дмитрий
14.05.2018
09:47:52
Там просто fsm
Я переделал движок, в основе теперь редукция графа зависимостей, это означает синхронный перерасчет всей структуры сразу вне зависимости от количества и характера зависимостей
https://github.com/zerobias/effector/blob/develop/src/effector/__test__/__snapshots__/index.test.js.snap
Вот я отдельно тестировал корректность построения дерева зависимостей

Serhii
14.05.2018
10:14:12
Доставляет количество скобок
Вот мой тест на мою реализацию hfsm: https://github.com/blackakula/redux-composite/blob/master/examples/dispatch.js

Dmitriy
14.05.2018
10:24:38
лесенки )

Дмитрий
14.05.2018
10:25:36
Для этого ниже человекочитаемый рендер, это тот же самый код
Compute это либо сторы, либо вычисления (map) перед ними
После подписки стора на эвент его корректность и актуальность поддерживается автоматически. Никакой код кроме реально задействованного не включается, в отличии от пустых прогонов редакса по всем редьюсерам

Serhii
14.05.2018
10:31:21

Дмитрий
14.05.2018
10:33:14
Редакс не спрашивает, прогоняешь ты или нет

Serhii
14.05.2018
10:37:21
Кстати, у меня можно даже кастомизировать equality проверку для стейта подсистемы: https://github.com/blackakula/redux-composite/blob/master/README.md#equality
Соответственно, триггеры не будут выполняться, если по equality стейт не изменился

Google

Vitaly
15.05.2018
09:54:14
Dto - тупая структура данных, которая имутабельна и может только максимум сериализовать себя, верно?
А vo - структура данных по умнее, тоже имутабельна, но имеет в себе поведение ещё

Aleh
15.05.2018
09:54:57
dto необязательно имутабельна

Vitaly
15.05.2018
09:55:35
Почему?

Adel
15.05.2018
09:56:54
обсуждали тут много про это дня два назад. пролистай.

Vitaly
15.05.2018
10:02:00
Ок, спасибо

Bohdan
15.05.2018
10:07:54
dto в чистом виде - массивчик на стероидах
все остальное - это уже от лукаVOго

Eugene
15.05.2018
10:09:56
здесь был вопрос, который нужно было задавать в другом канале. Извините.

Артур Евгеньевич
15.05.2018
15:17:56
Парни. А маппер не должен же содержать операции над коллекциями сущностей? И метод find к примеру не нужен же в нём, это все в репозитории должно быть?
Т.е типичный флоу:
поступает запрос обрабатывается в контроллере
вызывается апликейшн сервис
в нем с помощью репозитория получаем сущности
выполняем над ними какие либо операции
перстистим результат с помощью репозитория(который может как использовать внутри себя маппер а может и нет)
у вас так?

Like
15.05.2018
15:21:48
Но, почему-то, все говорят, что я говнокодер

Sergey
15.05.2018
15:22:30
(ну то есть я не вижу смысла вводить application-level сервисы там где есть только контроллеры)))

Like
15.05.2018
15:23:15

Sergey
15.05.2018
15:23:31

Like
15.05.2018
15:23:45
Мне "покормить" контроллеры не жалко :)

Артур Евгеньевич
15.05.2018
15:27:16
т.е направление зависимостей получаетс такое( => читать как внедряется в ):
SomeEntityMapper => RepositoryInterface => SomeApplicationService
т.е маппер это вообще вспомогательная штука на инфраструктурном слое которая изолирует по возможности нас от общение на языке хранилища напрямую

Google

Charles
15.05.2018
19:18:06
ребят, а вот скажите. вот допустим картинка
http://www.csci.csusb.edu/dick/samples/links.png
я понимаю что knows это типа храним ссылку на объект, а uses - вот это что с точки зрения кода?
напрямую вызов без хранения зависимости?

Александр
15.05.2018
19:35:19
Не туда посмотрел
Uses - зависимость, нет?

Sheldhur
15.05.2018
19:56:28
суп
есть два стула
/user/:userId/subs/link/:linkId
- userId для пользователя свой, для админа любой, у link есть свойство userId, которое чекается. Запрос к другому userId или linkId вернет - 404
/user/subs/link/:linkId - тоже самое, но userId берется из сессии
в первом варианте тоже к сессии придется обратиться, чтобы чекнуть userId
есть ещё третий стул, это админка и либо делать единый REST endpoint (первый вариант), либо два (приватный и публичный, второй + первый)

Charles
15.05.2018
20:14:09

Александр
15.05.2018
20:17:39

Charles
15.05.2018
20:19:21
ну вроде как да

Aleh
15.05.2018
20:19:29
Rest endpoint :3