Size: a a a

2020 November 14

R

Rafael 🦠 in ☄️ effector
источник

DO

Dmitry Olyenyov in ☄️ effector
Есть смысл еще как в react-query-devtools, что-то типа такой иконки добавить
источник

DO

Dmitry Olyenyov in ☄️ effector
с возможностью дизабла её
источник

DO

Dmitry Olyenyov in ☄️ effector
не, ctrl-k — это в хроме "искать в Google"
источник

c⁣

createStore<🦉>... in ☄️ effector
источник

c⁣

createStore<🦉>... in ☄️ effector
⌃+B
источник

c⁣

createStore<🦉>... in ☄️ effector
я ща проверил)
источник

c⁣

createStore<🦉>... in ☄️ effector
но в приложении должен быть логгер и createInspector()
источник

NF

Nikita Fedorov in ☄️ effector
Первый 🦄 Император
нужно инициализировать стор с данными из localStorage.
инлайн норм или лучше через эффект.
1) Single Level of Abstraction
localStorage - низкоуровневый api,
restore - высокоуровневый api
2) DI
localStorage - внешняя зависимость с состоянием
3)
Обеспечение уникальности ключей?
Версионирование формата и миграции?
Получение из другого источника?
Если этот источник не синхронный что изменится?
Если данные испорчены, как обрабатывать ошибку?
Как протестировать?

Вот и ответ.
источник

П

Первый 🦄 Император... in ☄️ effector
Nikita Fedorov
1) Single Level of Abstraction
localStorage - низкоуровневый api,
restore - высокоуровневый api
2) DI
localStorage - внешняя зависимость с состоянием
3)
Обеспечение уникальности ключей?
Версионирование формата и миграции?
Получение из другого источника?
Если этот источник не синхронный что изменится?
Если данные испорчены, как обрабатывать ошибку?
Как протестировать?

Вот и ответ.
У меня не тот случай, когда нужно переживать за массив из 4х строк
:) если нет данных в сторадже, то будет использован пустой массив.
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita Fedorov
1) Single Level of Abstraction
localStorage - низкоуровневый api,
restore - высокоуровневый api
2) DI
localStorage - внешняя зависимость с состоянием
3)
Обеспечение уникальности ключей?
Версионирование формата и миграции?
Получение из другого источника?
Если этот источник не синхронный что изменится?
Если данные испорчены, как обрабатывать ошибку?
Как протестировать?

Вот и ответ.
для тех кому важны миграции кстати есть indexeddb, в котором необходимость обеспечивать миграцию данных заложена изначально

localStorage это как S3 — что-то по быстрому накидать и залить, не парясь)

но вот про di прям в точку — с помощью di в effect.use можно заменить локалстораж на код для для в nodejs
источник

R

Rafael 🦠 in ☄️ effector
😲 видимо придется использовать indexeddb
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Rafael 🦠
😲 видимо придется использовать indexeddb
я использую — json схемы приложений весят по два метра, пришлось озаботиться)
но indexeddb это весьма хардкорно в плане имплементации работы с ним, пока заходит тяжеловато
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
по ощущениям это как full-featured nosql типа dynamodb — со всеми вытекающими
источник

NF

Nikita Fedorov in ☄️ effector
ну indexeddb не то чтобы много делает для миграций
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita Fedorov
ну indexeddb не то чтобы много делает для миграций
ну там ты обязан имплементить реакцию на versionchange эвент, иначе однажды приложение окажется без базы данных, так как инстанс свалится с ошибкой
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
чисто такой навязчивый способ напомнить о важности миграций)
источник

NF

Nikita Fedorov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
чисто такой навязчивый способ напомнить о важности миграций)
когда абстрактный класс требует от меня заимплементить метод: () => {}
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ну так то да 😅
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
по ощущениям это как full-featured nosql типа dynamodb — со всеми вытекающими
кстати больше всего в indexeddb впечатляют композитные ключи (по нескольким полям в совокупности), прям киллер фича, полноценных аналогов особо нет
источник