Size: a a a

2020 October 16

D

Danila in ☄️ effector
Мне импонирует подход, но структуру выбрать правильно сложно получается
источник

YL

Yan👀 Lobaty in ☄️ effector
данный подход предлагает явно отделять декларации конкретно взятой зоны ответственности от ее связей (внутренних - реакция сторов на событий, внешних - top-lvl operators: forward, sample, guard) и сайд-эффектов (хэндлеры эффектов которые могут внутри себя использовать third-party APIs)
источник

D

Danila in ☄️ effector
Yan👀 Lobaty
данный подход предлагает явно отделять декларации конкретно взятой зоны ответственности от ее связей (внутренних - реакция сторов на событий, внешних - top-lvl operators: forward, sample, guard) и сайд-эффектов (хэндлеры эффектов которые могут внутри себя использовать third-party APIs)
Но из этого не следует инициализация в руте же? )
источник

YL

Yan👀 Lobaty in ☄️ effector
таким образом каждая зона ответственности двумя файлами отвечает на два вопроса
так а че тут есть? (index)
так а че тут происходит (init)
источник

D

Danila in ☄️ effector
Yan👀 Lobaty
таким образом каждая зона ответственности двумя файлами отвечает на два вопроса
так а че тут есть? (index)
так а че тут происходит (init)
Тут согласен, красота
источник

D

Danila in ☄️ effector
Меня именно инициализация на уровне app  смутила
источник

ф

фильтруй мысли... in ☄️ effector
Danila
Тут согласен, красота
Telegram
прими это in ☄️ effector
Мне нравится такой подход: создавать юниты эффектора в одном файле, а их взаимодействия - в другом.

Выглядит это так:
model.js - интерфейс модели (сущности),
init.js - модель поведения (связи)

Удобно, когда в одном файле описано, что из себя представляет модель. Заглянув в этот файл, можно  быстро получить представление о модели, её состояниях и методах, до погружения в бизнес-логику.  Создавая юниты в одном файле, мы описываем интерфейс модели (как интерфейс объекта в типах).

Получается, что вся логика  находится в одном файле (init), а создание сущностей мы выносим в отдельный (model), чтобы видеть структуру модели, т.е. что она из себя представляет. В итоге, интерфейс и поведение разделены.

Такой подход также позволяет импортить то, что тебе нужно, и не париться насчёт циклических зависимостей. Модели/подмодели могут перекрёстно зависеть друг от друга, это развязывает руки и упрощает работу - не нужно ломать голову каждый раз, что от чего должно зависеть, чтобы не было циклов.
источник

YL

Yan👀 Lobaty in ☄️ effector
ну для ленивой инициализации можно где-то уровнем ниже инициализацию проводить
однако тогда тебе как члену команды поддержки надо будет не забыть об этом ините ниже корня
так как если с этой зоной ответственности будут взаимодействовать другие
ты будешь долго разыскивать в чем же дело
источник

ф

фильтруй мысли... in ☄️ effector
Danila
Меня именно инициализация на уровне app  смутила
она не всегда обязательна, можно для начала на уровне фич инициализировать
источник

D

Danila in ☄️ effector
Yan👀 Lobaty
ну для ленивой инициализации можно где-то уровнем ниже инициализацию проводить
однако тогда тебе как члену команды поддержки надо будет не забыть об этом ините ниже корня
так как если с этой зоной ответственности будут взаимодействовать другие
ты будешь долго разыскивать в чем же дело
index.ts
      import 'init'
      export * from './units'

Мне в этом разве не поможет?
источник

YL

Yan👀 Lobaty in ☄️ effector
Danila
index.ts
      import 'init'
      export * from './units'

Мне в этом разве не поможет?
чем поможет экспорт ол?)
источник

YL

Yan👀 Lobaty in ☄️ effector
похоже на обходные пути уже если честно
источник

D

Danila in ☄️ effector
Yan👀 Lobaty
чем поможет экспорт ол?)
Он не поможет, поможет import init
источник

🦜

🦜 in ☄️ effector
источник

🦜

🦜 in ☄️ effector
чот интересное намечается
источник

ф

фильтруй мысли... in ☄️ effector
Danila
index.ts
      import 'init'
      export * from './units'

Мне в этом разве не поможет?
ты почитай то, что я тебе скинул
источник

NT

Nikita Tkachuk in ☄️ effector
источник

ф

фильтруй мысли... in ☄️ effector
такое - нет
источник

ф

фильтруй мысли... in ☄️ effector
уже реализовано немного по-другому
https://t.me/effector_ru/171044
источник

m

mg901 in ☄️ effector
Можно ли тестировать ивенты так
const scope = fork(root, {
     handlers: new Map().set(event,eventMock),
   });
?
источник