notification + pull - как работает Act.
push + pull - как работает классический дерти чекинг и большинство реактивных менеджеров состояний.
В разных графах профит будет у каждого подхода разный. Количество фиолетовых наконечников := количество работы, можете сами посчитать и сравнить.
Самый интригующий вопрос - каких графов в типикал приложений больше? На что ориентироваться?
Думаю, next thing, не big но все же, в менеджерах состояния будет автоматический расчет оптимального алгоритма подписки в зависимости от количества и качества зависимых нод.
схема
push + pull - как работает классический дерти чекинг и большинство реактивных менеджеров состояний.
В разных графах профит будет у каждого подхода разный. Количество фиолетовых наконечников := количество работы, можете сами посчитать и сравнить.
Самый интригующий вопрос - каких графов в типикал приложений больше? На что ориентироваться?
Думаю, next thing, не big но все же, в менеджерах состояния будет автоматический расчет оптимального алгоритма подписки в зависимости от количества и качества зависимых нод.
схема
👍12❤🔥3
А вы знали, что по спеке модулей, изменение импортируемой переменной меняет эту переменную везде? Иначе говоря, в из require мы получаем value type - копию примитивного типа, а при импорте (именованном!) мы затаскиваем себе именно переменную.
https://twitter.com/fabiospampinato/status/1623224334444634112
https://twitter.com/fabiospampinato/status/1623224334444634112
X (formerly Twitter)
Fabio Spampinato (@fabiospampinato) on X
Hold on, if you aren't using a default export it works 🤨 How did I not know about this?!
🤔8👍5🤯2🤡1
Я вот думаю, как сделать пользователя хозяином своих данных, а не сервис?
Прикиньте такую модель. Есть облако в котором ты регаешься и платишь за ресурсы. Есть куча других сервисов, которые пишет кто угодно: почта, фоточки, заметки, соцсетки и тд и тп, которые работают поверх этого стораджа. Те пользователь авторизуется в сервисе через облачного провайдера ресурсов.
Сервисы бесплатные! Облако платит сервисам, за то что их пользователи покупают у него ресурсы. Понимаете модель?
Это уже работает, по сути, только вывернуто наизнанку. А представьте что у амазона / азура будет юзер френдли интерфейс для регистрации и покупки квот.
Сервисы писать так намного легче.
- не ограниченность балансом фич и их маржинальности
- отпадает часть региональных забот по обработке персональных данных
- простой и понятный выход на рынок в плане монетизации
Пользователям вообще сказка.
- контроль над своими данными - легко бекапить на локальную машину
- прозрачность оплаты
- больше конкуренций про перформанс между сервисами
Думаю, есть еще пачка бенефитов, которые я пока не придумал.
Понятно, что замкнутость на специфическом облаке будет проблемой, поэтому нужна общая спека. Каждый сервис будет из коробки селф-хостед ! И представьте как начнут шевелится провайдеры, что бы переиграть друг друга и предоставить конечным пользователям (!) фичи, которые они будут запрашивать у своих сервисов.
Уточню. Я не про децентрализацию, это сложно. Пусть остаются централизованные провайдеры, которые за денежку хендлят комплексити, только нужна возможность переключаться между ними.
В комментарии принесли вот что: https://en.wikipedia.org/wiki/Solid_(web_decentralization_project)
Прикиньте такую модель. Есть облако в котором ты регаешься и платишь за ресурсы. Есть куча других сервисов, которые пишет кто угодно: почта, фоточки, заметки, соцсетки и тд и тп, которые работают поверх этого стораджа. Те пользователь авторизуется в сервисе через облачного провайдера ресурсов.
Сервисы бесплатные! Облако платит сервисам, за то что их пользователи покупают у него ресурсы. Понимаете модель?
Это уже работает, по сути, только вывернуто наизнанку. А представьте что у амазона / азура будет юзер френдли интерфейс для регистрации и покупки квот.
Сервисы писать так намного легче.
- не ограниченность балансом фич и их маржинальности
- отпадает часть региональных забот по обработке персональных данных
- простой и понятный выход на рынок в плане монетизации
Пользователям вообще сказка.
- контроль над своими данными - легко бекапить на локальную машину
- прозрачность оплаты
- больше конкуренций про перформанс между сервисами
Думаю, есть еще пачка бенефитов, которые я пока не придумал.
Понятно, что замкнутость на специфическом облаке будет проблемой, поэтому нужна общая спека. Каждый сервис будет из коробки селф-хостед ! И представьте как начнут шевелится провайдеры, что бы переиграть друг друга и предоставить конечным пользователям (!) фичи, которые они будут запрашивать у своих сервисов.
Уточню. Я не про децентрализацию, это сложно. Пусть остаются централизованные провайдеры, которые за денежку хендлят комплексити, только нужна возможность переключаться между ними.
В комментарии принесли вот что: https://en.wikipedia.org/wiki/Solid_(web_decentralization_project)
👍9🤡8
artalog
useEvent отменили 💁♂️ Напомню, в реакте есть проблема паразитных зависимостей, которые нужны лишь по запросу, но тк прокидывать в хуки их нужно синхронно, изменяясь они ломают мемоизацию и могут пораждать большие или просто избыточные ветви ререндеров. В…
https://news.1rj.ru/str/artalog/436
Мы так сделали.
https://gist.github.com/artalar/4a76dfc7abb8cea8b0ef58ff86ecd6e4
Мы так сделали.
https://gist.github.com/artalar/4a76dfc7abb8cea8b0ef58ff86ecd6e4
💩4👍3
Forwarded from Reatom новости (artalar)
#help_oss
Кто-то хочет помочь сделать самый лучший роутер для веба? Там не сложно 😃 можно сделать только часть.
https://github.com/artalar/reatom/issues/467
Гайд по контрибьютингу в Reatom.
Кто-то хочет помочь сделать самый лучший роутер для веба? Там не сложно 😃 можно сделать только часть.
https://github.com/artalar/reatom/issues/467
Гайд по контрибьютингу в Reatom.
GitHub
Router package · Issue #467 · artalar/reatom
We need a router package for the web. Simple, type-safe, scalable (it easy with Reatom). I think the best base, which we could fork and reuse is https://github.com/nanostores/router. What we need: ...
🔥1
Я вот правильно понял, что 1кб ЖСа (гзип) берет примерно 5мс мейн треда на мобиле и 1мс на компе?
https://timkadlec.com/remembers/2020-04-21-the-cost-of-javanoscript-frameworks/
https://timkadlec.com/remembers/2020-04-21-the-cost-of-javanoscript-frameworks/
Timkadlec
The Cost of Javanoscript Frameworks - Web Performance Consulting | TimKadlec.com
https://news.1rj.ru/str/valya_reads_issue/285
В двадцатых годах мы уничтожили лицензирование как явление, сделав ~MIT дефолтом. Что, с одной стороны, просто и хорошо, но с другой стороны, развивает токсичные отношения между разработчиком и пользователем.
Лицензия описывает не только “как” или “сколько” платить, но и “за что”. Регулярно в ишьесах крупных библиотек встречаются коменты, “ты должен починить это для меня”, “вы не должны ломать обратную совместимость” и т.п. Это абьюзные отношения. Сам смысл может быть верным, пользователи имеют полное право и должны высказывать свое мнение по тому какой продукт они хотят, но конкретные слова тут могут играть большую роль и добавлять или пропускать важные смыслы. Я хочу сказать, что авторы библиотек тоже люди, которые чаще всего делают свои проекты на энтузиазме, ожидая позитивный фидбек в ответ.
У каждого человека есть эгоцентричное чувство справедливости и я понимаю чем автор core-js так не доволен. Не думаю что он прав формально, “требуя” денег, но можно попробовать представить какое моральное давление на него оказывают его условия и обстоятельства. И это важно понимать, софт делают люди.
Думаю, мир стал бы лучше если бы дефолтные лицензии были лучше продуманы и давали бы больше маневров в перспективе. Например https://fair.io
В двадцатых годах мы уничтожили лицензирование как явление, сделав ~MIT дефолтом. Что, с одной стороны, просто и хорошо, но с другой стороны, развивает токсичные отношения между разработчиком и пользователем.
Лицензия описывает не только “как” или “сколько” платить, но и “за что”. Регулярно в ишьесах крупных библиотек встречаются коменты, “ты должен починить это для меня”, “вы не должны ломать обратную совместимость” и т.п. Это абьюзные отношения. Сам смысл может быть верным, пользователи имеют полное право и должны высказывать свое мнение по тому какой продукт они хотят, но конкретные слова тут могут играть большую роль и добавлять или пропускать важные смыслы. Я хочу сказать, что авторы библиотек тоже люди, которые чаще всего делают свои проекты на энтузиазме, ожидая позитивный фидбек в ответ.
У каждого человека есть эгоцентричное чувство справедливости и я понимаю чем автор core-js так не доволен. Не думаю что он прав формально, “требуя” денег, но можно попробовать представить какое моральное давление на него оказывают его условия и обстоятельства. И это важно понимать, софт делают люди.
Думаю, мир стал бы лучше если бы дефолтные лицензии были лучше продуманы и давали бы больше маневров в перспективе. Например https://fair.io
Telegram
Валя читает ишью
So, what's next?
Денис Пушкарёв написал огромнейший пост о том, как началась разработка «маленькой» библиотеки core-js, о неудачах с фандрайзингом и планах на будущее, если это будущее, конечно, будет.
Если вы как-то упустили, то core-js это набор полифилов…
Денис Пушкарёв написал огромнейший пост о том, как началась разработка «маленькой» библиотеки core-js, о неудачах с фандрайзингом и планах на будущее, если это будущее, конечно, будет.
Если вы как-то упустили, то core-js это набор полифилов…
🔥7👍3
Forwarded from Reatom новости (artalar)
Простой паттерн статической конфигурации может сильно упростить и уменьшить работу со стейтом и избавить от лишних ререндеров.
Суть в том что бы иметь возможность создавать инстансы компонентов переназначая какие-то пропсы для начального значения и получая к ним доступ извне.
На скрине мы создаем атом и добавляем его в свойства компонента что бы получить доступ к его стейту извне. Понятно, что можно отдельно описать атомы в файле Login и пробросить их ручками, но таким образом мы контролируем контракт между модулями только на уровне типов, а с функцией
Формально говоря, это упущенная фаза "конфигурация", которая в реакте никак не выделена и вместе с "инициализацией" происходит в рендере. Из-за этого много путаницы, лишнего когда и ререндеров.
Суть в том что бы иметь возможность создавать инстансы компонентов переназначая какие-то пропсы для начального значения и получая к ним доступ извне.
На скрине мы создаем атом и добавляем его в свойства компонента что бы получить доступ к его стейту извне. Понятно, что можно отдельно описать атомы в файле Login и пробросить их ручками, но таким образом мы контролируем контракт между модулями только на уровне типов, а с функцией
create (можно еще назвать ее fork) весь контроль над компонентом остается внутри, но управление доступно снаружи.Формально говоря, это упущенная фаза "конфигурация", которая в реакте никак не выделена и вместе с "инициализацией" происходит в рендере. Из-за этого много путаницы, лишнего когда и ререндеров.
🔥2
node.js in browser by wasm is out of beta: https://webcontainers.io/
webcontainers.io
WebContainer API Docs
Build the future of web based coding experiences, from interactive tutorials to instant production-ready dev environments.
👍7🥱3🔥2😁1
Делаю reatom/timer, вроде простая штука, а уже сотню строк занимает! На скрине с кодом финальный код тика, скрин с ошибкой показывает результат во время разработки до добавления
Вообще интересно, что всякие лодаши содержат только очень простые утилиты, а фабричные функции подробной сложности уже редкость. Реакт с хуками немного улучшил в этом плане ситуацию в экосистеме, но переиспользуемых решений (не привязанных к view либе) я все ещё не знаю.
roundPart.Вообще интересно, что всякие лодаши содержат только очень простые утилиты, а фабричные функции подробной сложности уже редкость. Реакт с хуками немного улучшил в этом плане ситуацию в экосистеме, но переиспользуемых решений (не привязанных к view либе) я все ещё не знаю.
👍5
Forwarded from kirjs_ru
Сегодня в 19:00 с @artalar (@artalog) и 🦊 посмотрим, что Angular хочет сделать с сигналами - новыми реактивными примитивами, и зачем это нужно.
https://twitter.com/angular/status/1625939902046117890
👀 Посмотреть: twitch.tv/kirjs | youtu.be/pUbTumpv-QE
https://twitter.com/angular/status/1625939902046117890
👀 Посмотреть: twitch.tv/kirjs | youtu.be/pUbTumpv-QE
👍6💩2🔥1
kirjs_ru
Сегодня в 19:00 с @artalar (@artalog) и 🦊 посмотрим, что Angular хочет сделать с сигналами - новыми реактивными примитивами, и зачем это нужно. https://twitter.com/angular/status/1625939902046117890 👀 Посмотреть: twitch.tv/kirjs | youtu.be/pUbTumpv-QE
YouTube
Смотрим Сигналы в Angular с @artalar
посмотрим, что Angular хочет сделать с сигналами - новыми реактивными примитивами, и зачем это нужно.
https://twitter.com/angular/status/1625939902046117890?s=20&t=Sl0aYhzsQOfoTE3plWeqJQ
https://twitter.com/angular/status/1625939902046117890?s=20&t=Sl0aYhzsQOfoTE3plWeqJQ
🔥9
А как это будет выглядеть на вашей любимой либе и какой будет бандлсайз? :)
https://news.1rj.ru/str/reatom_ru_news/161
https://news.1rj.ru/str/reatom_ru_news/161
Telegram
Reatom новости
А вот и полноценная демка reatomTimer: pomodoro timer.
Постараюсь сегодня сделать маленький стрим с разбором исходников.
Постараюсь сегодня сделать маленький стрим с разбором исходников.
👍1