Size: a a a

2020 June 07

🐱

🐱 Rough Cat in ☄️ effector
🐱 Rough Cat
Меня товарищ спросил, в чем преимущество эффектора перед редаксом в двух словах
И я сначала хотел привести кейсы, моменты когда надо рулить сложную логику, но призадумался
источник

TK

Tauka Kunzhol in ☄️ effector
Завтра
а теперь добавь туда что-то более сложное, чем положить payload ивента в стор
forward + map
источник

З

Завтра in ☄️ effector
круто, вместо одного .on
источник

c⁣

createStore<🦉>... in ☄️ effector
🐱 Rough Cat
Меня товарищ спросил, в чем преимущество эффектора перед редаксом в двух словах
децентрализованность, декларативность, эффективность. требовался инструмент, позволяющий управлять данными в сложных приложениях без опасности раздуть монолитный центральный стор, с явным control flow, нормальной типизацией и емким апи
— сторы для приложения должны быть лёгкими, насколько это возможно — не должна пугать мысль о том, что нужно добавить ещё один стор для конкретных нужд
— сторы должны свободно совмещаться — идея в том, что данные, которые потребуются приложению, можно распределить статически, заранее показав как данные будут преобразоваться во время работы приложения
— принцип работы должен by design исключать необходимость в reselect, оповещая об изменениях только тех, кому они необходимы. это позволяет не задумываться о том, что у тебя будет триггериться всё приложение если ты захочешь вынести  стейт модалки из реакта. по совместительству это означает что приложения избавлены от проблем с перфомансом, возникшим у react-redux при переходе на контекст
— возможность, место, и способ вынести любую требуемую бизнес-логику из view, максимально упрощая компоненты
— независимость от спорных концепций — никаких декораторов, никаких зависимостей от реакта/rxjs либо необходимости юзать классы или прокси — ничего из этого не требуется для управления состоянием приложения и поэтому апи библиотеки использует только функции и простые js объекты
— предсказуемость апи. небольшое число базовых принципов переиспользуются в различных кейсах, снижая нагрузку на юзера и повышая узнаваемость. зная как работает .watch  в эвентах, можно догадаться, что делает функция .watch у стора
— приложение строится из комбинации базовых элементов и возможности строить новые.
нет никакого смысла стремиться выдать всё за стрим, за редьюсер или за обсервабл, в приложении требуются они все, и библиотека предлагает решение чтобы управлять структурой данных, а не скрывать её
источник

🐱

🐱 Rough Cat in ☄️ effector
createStore<🦉> ⁣
децентрализованность, декларативность, эффективность. требовался инструмент, позволяющий управлять данными в сложных приложениях без опасности раздуть монолитный центральный стор, с явным control flow, нормальной типизацией и емким апи
— сторы для приложения должны быть лёгкими, насколько это возможно — не должна пугать мысль о том, что нужно добавить ещё один стор для конкретных нужд
— сторы должны свободно совмещаться — идея в том, что данные, которые потребуются приложению, можно распределить статически, заранее показав как данные будут преобразоваться во время работы приложения
— принцип работы должен by design исключать необходимость в reselect, оповещая об изменениях только тех, кому они необходимы. это позволяет не задумываться о том, что у тебя будет триггериться всё приложение если ты захочешь вынести  стейт модалки из реакта. по совместительству это означает что приложения избавлены от проблем с перфомансом, возникшим у react-redux при переходе на контекст
— возможность, место, и способ вынести любую требуемую бизнес-логику из view, максимально упрощая компоненты
— независимость от спорных концепций — никаких декораторов, никаких зависимостей от реакта/rxjs либо необходимости юзать классы или прокси — ничего из этого не требуется для управления состоянием приложения и поэтому апи библиотеки использует только функции и простые js объекты
— предсказуемость апи. небольшое число базовых принципов переиспользуются в различных кейсах, снижая нагрузку на юзера и повышая узнаваемость. зная как работает .watch  в эвентах, можно догадаться, что делает функция .watch у стора
— приложение строится из комбинации базовых элементов и возможности строить новые.
нет никакого смысла стремиться выдать всё за стрим, за редьюсер или за обсервабл, в приложении требуются они все, и библиотека предлагает решение чтобы управлять структурой данных, а не скрывать её
+
источник

🐱

🐱 Rough Cat in ☄️ effector
Но тут вообще был вопрос, как я понял, описать одним емким предложением, вложить весь этот смысл в небольшую последовательность слов
источник

DV

Default Voiceб 🔥 in ☄️ effector
🐱 Rough Cat
Но тут вообще был вопрос, как я понял, описать одним емким предложением, вложить весь этот смысл в небольшую последовательность слов
Можно одним словом
источник

DV

Default Voiceб 🔥 in ☄️ effector
Вернее, аббревиатурой
источник

DV

Default Voiceб 🔥 in ☄️ effector
DX
источник

DV

Default Voiceб 🔥 in ☄️ effector
Это ключевой момент, с эффектором тупа удобнее и меньше шансов прострелить себе ногу
источник

🐱

🐱 Rough Cat in ☄️ effector
Это да
источник

🐱

🐱 Rough Cat in ☄️ effector
Ну пока я нашёл первое слово - декларативный, потому что в релаксин я устал от императивного кода
источник

DV

Default Voiceб 🔥 in ☄️ effector
🐱 Rough Cat
Это да
В конечном счёте вообще всё в это упирается, на самом деле. Вон точечные апдейты DOM шустрее реакта и вдомов, но тем не менее люди вон даж лендосы пишут с реактом. Просто это удобнее для разраба и меньше шансов накосячить. Вот и всё
источник

DV

Default Voiceб 🔥 in ☄️ effector
С эффектором то ж самое. Ты можешь взять редакс, реселект, санки или там саги, мучаться с ререндерингами и раздутым стором, делать прочие кульбиты. А можешь просто взять эффектор, где все эти проблемы уже заботливо решены Димой, бери и юзай
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
Скажешь в каком ?
Форвард нужен
1. когда таргет уже существует, на момент создания связи
2. когда сорс или\и таргет можественные сущности

Форвард не подходит:
1. когда нужна фанка трансформации пейлоада
2. когда таргетом является стор\сторы
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
Форвард нужен
1. когда таргет уже существует, на момент создания связи
2. когда сорс или\и таргет можественные сущности

Форвард не подходит:
1. когда нужна фанка трансформации пейлоада
2. когда таргетом является стор\сторы
Ну по второй части, можно семпл заюзать
источник

AO

Aleksandr Osipov in ☄️ effector
Но мы это обсуждали вроде, у меня был вопрос на счёт производного стора и .map vs sample хитрый
источник

D

Draft in ☄️ effector
Я всегда за более понятные/простые варианты
источник

🐱

🐱 Rough Cat in ☄️ effector
Default Voiceб 🔥
В конечном счёте вообще всё в это упирается, на самом деле. Вон точечные апдейты DOM шустрее реакта и вдомов, но тем не менее люди вон даж лендосы пишут с реактом. Просто это удобнее для разраба и меньше шансов накосячить. Вот и всё
DX как довод для среднестатистического разраба не особо силён, он скажет,  я вот пишу на редаксе, я к нему привык, он офигенен и у него привычный уклад
источник

DV

Default Voiceб 🔥 in ☄️ effector
🐱 Rough Cat
DX как довод для среднестатистического разраба не особо силён, он скажет,  я вот пишу на редаксе, я к нему привык, он офигенен и у него привычный уклад
Ну пусть на редаксе пишет тогда, зачем его заставлять
источник