Сова пишет…
3.13K subscribers
345 photos
37 videos
5 files
417 links
Frontend Senior Fullstack Backend Lead и прочие слова.
Изучаю самые современные технологии.
Обучаю разработчиков как стать сильнее — https://frontend.vision.

По коллаборациям и сотрудничеству пишите в сообщения канала!
Download Telegram
Как легко и просто отключать effector-logger в production

Если проект с SSR, то проще всего установить effector-root и заменить все импорты на него. Этот пакет заворачивает все сущности в root домен.
Если без SSR, то замените все свои импорты “effector” на “effector-root”, хоть вручную, хоть babel-плагином.

А затем добавьте следующий код в файл инициализации приложения:
import { root } from ‘effector-root’
import { attachLogger } from 'effector-logger/attach';

if (process.env.NODE_ENV !== ‘production’) {
attachLogger(root);
}
Простейший сниппет для чтения кук в браузере или как обойтись без библиотеки.

https://gist.github.com/sergeysova/a25a6f1ea6ad358d9d3dd7176e68b6ac

На сервере тоже можно
Forwarded from Dmitriy Shuleshov
Вот моя ментальная модель.

В нашей системе постоянно происходят **события*". Что то пришло по сети, юзер упал лицом лицом в клаву, процессор начал простаивать, etc...

Ивенты эффектора - это события именно в мире эффектора. Апи эффектора:
- позволяет связывать ивенты эффектора по различным сценариям
- позволяет связывать ивенты эффектора с реальными событиями
- позволяет описывать схемы реакции сторов на ивенты

C моей точки зрения, фраза - "апи эффектора создает ивенты" (например фабрикой createEvent), не совсем точно отображает действительность. Хотя эффектор и создает то что более похоже по существу на события, но они скрыты от нас внутри ядра библиотеки. То что называется событием эффектора, на самом деле более точно можно описать как ссылка на событие, которая является индикатором и инициализатором в одном флаконе.

То есть получив ссылку от фабрики таким образом:
const eventLink = createEvent()
мы ее можем использовать двумя способами:
1. Как инициализатор:
document.addEventListener('click', DOMevent => evenLink(DOMevent))
2. Как индикатор:
evenLink.watch((
DOMevent
) => alert(`User clicked on element!`))

Для того что бы связать реальное событие с событием эффектора ментально нужно выполнить следующую операцию:
КОГДА произошло реальное событие, ИНИЦИАЛИЗИРУЙ
запуск ивента эффектора.

Хотя эффектор не накладывает никаких ограничений, но логично когда реальные ивенты связываются только с ссылками ивентов эффектора, произведенных фабрикой createEvent (кроме прочего новые ивенты могут производить такие api методы как sample, guard, merge, event.map, event.prepend, event.filter, event.filterMap, store.updates и набор ивентов производимых эффектом). Или другими словами, реальные ивенты должны инициализировать событие эффектора, только посредством ссылки из фабрики createEvent. Это упрощает ментальное восприятие связей системы и увеличивает предсказуемость ее работы.
То есть в телегу завезли треды
ОХ, ну случилось таки
let app_data: Data<Arc<Mutex<App<Database>>>>

Волшебный тип
Accesso имеет логотип из трех точек разного формата.

Я слегка упоролся и сделал loader в этом формате, но в двух вариантах: все точки одинаковые и точки повторяют логотип
Благодаря помощи чата, вспомнил простую истину анимаций: не надо вызывать reflow анимируемого элемента. В прошлой реализации я менял положение элемента среди других элементов, что вызывало пересчет положений, а следствие подергивание анимации, которое видно в предыдущем посте.

Когда вся анимация стала только transform, пересчета положений нет, сдвигается только само изображение элемента, хотя "физически" элемент остается на месте — в центре блока.

Собственно изменения можно заметить по замедленной увеличенной анимации. Кстати, эту вкладку можно открыть в выпадающей по Esc панели chrome devtools.

Всем спасибо!
Относительно новый экспериментальный Javascript движок на Rust:
https://github.com/boa-dev/boa

Аналогично экспериментальный линтер Javascript на Rust:
https://github.com/RDambrosio016/RSLint

Шо, происходит? Джаваскриптелы ломанулись переписывать тулинг на Rust? Почему сейчас? Почему на Rust? Неужели жс таки медленный для тулзов?
Заметил, что Apple на своих лендингах тоже использует data-аттрибуты в качестве селекторов.
Начал тред про девтулзы в эффекторе: https://twitter.com/_sergeysova/status/1313761384119898112?s=20

Ретвитайте, лайкайте и комментируйте, будет интересно!
Все каналы пишут про новый айфон. А если я не буду тут ничего писать, все уйдут?