Skip to content

Instantly share code, notes, and snippets.

View AlexandrHoroshih's full-sized avatar
🎯
Focusing

Alexander Khoroshikh AlexandrHoroshih

🎯
Focusing
View GitHub Profile
@AlexandrHoroshih
AlexandrHoroshih / effector-protocl-symbol.md
Last active November 6, 2022 07:53
effector-protocol-symbol

RFC: Универсальный контракт для экосистемы эффектора

Эффектор предоставляет хорошие базовые примитивы для построения логики, поверх них можно строить другие абстракции.

Многие библиотеки в экосистеме вводят свои абстракции: Query из farfetched, Route из atomic-router и Factory из factorio, которые обычно представляют собой объект со сторами

Было бы здорово ввести некий стандарт коммуникаций, который бы, вместо кастомных биндингов на каждый случай, позволил делать так:

import { useUnit } from "effector-react"
@AlexandrHoroshih
AlexandrHoroshih / use-unit-protocol.md
Last active December 18, 2022 11:20
use-unit-protocol-v2

Протокол для useUnit

Универсальный протокол для переиспользования концепта useUnit из биндингов под разные UI-фреймворки для библиотек из экосистемы.

Контекст

В экосистеме Эффектора есть библиотеки, которые вводят свои кастомные сущности: Query из @farfetched/core, Route из atomic-router или modelFactory из effector-factorio. Эти кастомные сущности представляют собой некий объект, основные свойства которого являются юнитами эффектора.

Сейчас каждая из этих библиотек заводит свои собственные библиотеки биндингов к UI-фреймворкам, многие из которых заключаются в очень простых надстройках над биндингами эффектора, например:

const webpack = require('webpack');
const pluginName = 'RetryChunkLoadPlugin';
const defaultRetryDelay = 200;
class RetryChunkLoadPlugin {
constructor(options = {}) {
this.options = {
maxRetries: 5,
chunks: ['runtime'],