artalog
4.23K subscribers
538 photos
40 videos
40 files
907 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
Так, памахите пажалста, накидайте лайкосов сюда (нужно 20 набрать).

На слабо-контрастных темах bracketPairColorization сейчас выглядит максимально странно, а вот только для скобок вокруг курсора это могло бы быть удобно.
👍5
https://github.com/solidjs/solid-workgroup/discussions/2

Каждый раз радостно видеть как люди работают над теорией реактивного программирования и и ее связью с реальностью.

Ну, как каждый раз. Чаще всего на медиумах и dev.to пишут ясельный пересказа доки какой-то либы. Но конкретно Ryan Carniato (автор solidjs) имеет большой опыт в иследовании этого вопроса и может быть у него получится что-то интересное.

Из подобного есть еще старенький GTOR, но там больше про прикладное ФРП. Ну и статьи Карловского.

Напомню, что я уже рассказывал что такое РП концептуально и твердо уверен что это точное определение. Так же на вики есть хорошая статья на этот счет.
👍8
Очередная конфа на которой я буду рассказывать НЕ про реатом 😁
Forwarded from Тanya 🚨 Denisyuk
Media is too big
VIEW IN TELEGRAM
Всем привет!
У нас хорошая новость: конференция «Я Люблю Фронтенд» пройдёт уже 12 августа.
Приходите послушать доклады, обменяться опытом и полезно провести время. Конференция пройдёт в смешанном оффлайн-онлайн формате. Посмотреть программу и зарегистрироваться можно на сайте http://ilovefrontend.ru.
До встречи!
👍3
Скоро, совсем скоро можно уже будет пощупать :)
🔥8
Через несколько минут расскажу на коротком стриме что здесь происходит и почему это круто.
Live stream started
Live stream finished (10 minutes)
Решил запилить декоратор для эффекта, который в аргументы добавлял бы AbortController и выбрасывал бы сам ошибку, при запуске нового эффекта, до завершения предыдущего (стандартный last in win).

До этого с этим контроллером не работал, обходился простым счетчиком запросов, но для библиотеки решил сделать все “правильно”.

Ну кароч. Фича типа экспериментальная, но судя по поддержке в стандарте она появится точно, это же веб.

Я решил в onReject игнорировать ошибки отмены и обычно это делается проверкой на instanceof, но в доках и глобальном скоупе я AbortError найти не смог. Оказалось это лишь name у ошибки DOMException (wat??).

Попригорало и ладно, что там дальше. Тк мы передаем пользователю контроллер, нам нужно обрабатывать вызов сигнала. Было бы логично использовать throwIfAborted, но у него поддержка в хроме только этой весной появилась (AbortController там 4 года уже) - wat?

Кароч странно все это.
https://t.me/xufostation/758

В подкасте гость не разделяет РП и ФРП, потому что у нас в индустрии практически нет теоретических исследований РП в целом, но большинство материалов связано с практикой ФРП.

Я уже не раз говорил что MobX, Excel и кучка мелких ООРП либ доказывают что реактивность может быть совсем вне контекста функционального программирования.

Нужно понимать что ФП и ООП на столько огромны, что включают в себя синтаксические, семантические и архитектурные особенности описания кода и построения его интерфейсов в целом. Упрощенно можно разделить их на функции высшего порядка и композицию, против классов и их наследования. И это вообще никак не пересекается с реактивным программированием, как простым паттерном переноса явных связей в коде в рантайм, через интерфейс подписки. Одно другому не противорчечит и даже не помогает / мешает.

Как правильно было замечено в начале подкаста - реактивное программирование отлично решает проблему связанности одного источника и нескольких потребителей.
https://artalar.github.io/csb-trpr1/

Расскопал вот такое вот старье в песочницах. Игрался с генерацией анимированного задника для lofi.

(код)

- перезагрузкой страницы выбираем симпотичный цвет
- настраиваем скорость в левом верхнем углу
- по Enter включаем фулскрин

Там бы хорошо еще какой-то lofi стрим на фон добавить, контролы красивые запилить. И главный челендж, на котором я остановился, переписать на генерацию статического текста (кода) кейфрема (это возможно).
Если кто хочет - форкайте, поделитесь потом что вышло 🙂
👍3
https://t.me/fxnim/51

На выходных пару часов дебажил Uncaught promise exception, искренне думая что в третьем случае, аналогично второму, ошибки не будет. Пофиксил, понятно, как в четвертом случае.

Ну бывает 😓
🤔9💩4
Forwarded from CherryTea
ну вобще тут история интересная, его изначально для фетча и делали, но по итогу решили сделать как отдельную апи
https://developer.chrome.com/blog/abortable-fetch/#the-history
Использовать разные либы для навигации, форм, сетевого кеша и остальных стейтов, вместо одного стейт менеджера с кучкой доменных хелперов, это тоже самое что использовать разные IoC для каждой из этих задач.
Есть системные домены, а есть бизнесовые: первые должны использовать одинаковый тулинг, вторые делиться и быть разграниченными.
👍6💩2🤔1
artalog
Использовать разные либы для навигации, форм, сетевого кеша и остальных стейтов, вместо одного стейт менеджера с кучкой доменных хелперов, это тоже самое что использовать разные IoC для каждой из этих задач. Есть системные домены, а есть бизнесовые: первые…
Адаптеры - рак современной разработки. Без наличия и попыток создать базовые примитивы для обработки конкурентных процессов и транзакций системное качество кода и конечных продуктов будет всегда заметно ниже возможного.

Я уже рассказывал о том что реактивные библиотеки не могут дружить между собой при наличии собственных (отдельных) очередей подписок. Это принципиально блокирует возможность делать атомарные транзакции и мутировать временные данные (что есть хорошо). Те негативно сказывается на стабильности и производительности приложения

cc t.me/JentlemanS/205382

Так же, адаптеры скрывают проблему консистентности системных утилит, позволяя написать просто сейчас, ухудшая дебаг и поддержку потом.
👍2
А ваш? 🙂
firstpr.me
🔥8
Забавно и по делу https://www.youtube.com/c/Fireship
🔥2
artalog
Забавно и по делу https://www.youtube.com/c/Fireship
Ok, вот материал поглубже.

В вебе до сих пор часть задач драгендропа нужно решать ручками или либами. Причем сложную часть, нативный днд апи позволяет решать достаточно скромный список задач (по моему опыту), при этом он плохо задизайнен и в разных браузерах имеет разные баги. Единственный неоспоримый плюс - возможность трекать межоконные перетаскивания.

А чем события мыши отличаются от событий тача и почему спек последнего несколько (было?)?

О всей этой истории легаси в докладе @rdvornov:

https://youtu.be/4o9joROJVHg?list=PLXObawgXpIfyH7XRtAN1JgFd6FJVzURdV
👍41