artalog
4.24K subscribers
539 photos
40 videos
40 files
909 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
artalog
Пробуем наноизировать goober
Результат вчерашней наноизации библиотеки goober на скриншотах. Подробности в ПРе, все оптимизации разбиты на отдельные комиты.

Я говорил на стриме, там можно заметно сократить бандлсайз с помощью optional chaing и ||= / ??= / ??, но для этого нужно правильно подправить сетап билда. Мне этим заниматься сейчас времени нет - можете подхватить 🙂
Напомню, они выплачивают деньги за урезание байт.
Introducing Signals

Преактовцы выпустили пакет, который заимствует некоторые идеи из Solid.js.
И у него есть частичная совместимость с реактом

Для 2022 там используются достаточно стандартные решения в плане реактивщины, но…

С точки зрения вью либы они сделали то чего давно не хватало во всех этих реактах - нативные реактивные биндинги!

Что это? Я уже как-то предлагал реализовать нечто подобно на Jotai (тогда это посчитали неважной утилитой). Оно позволяет вставлять в JSX реактивные юниты без использования хуков! Трюк прост - давайте вставлять компонент-обертку, который в себе просто вызывает хук и возвращает его значение. Таким образом мы избавляемся от пачки правил использования хуков в одном рендере.

Хотя уже давным давно существует github.com/grammarly/focal, который делает нечто подобное, но преактовцы сделали интеграцию максимально прозрачной и лёгкой как с точки зрения юзер кода, так и по технической реализации (ну это они так говорят).

И, наконец, получили vue.js.

И важно тут вот что, реактивный юнит в преакте можно не просто вставлять в JSX, но и передавать в атрибуты DOM элементов - и это гейм-ченджер который позволяет практически полностью убрать ререндеры.

Интересно, конечно, что там по памяти и скорости инициализации. Ждем еще независимые перфтесты.

P.S. пакет весит как третий реатом, который еще более фичастый и универсальный 😉
👍7🤯31
Forwarded from UfoStation
Опубликовали доклад с Ural Digital Weekend 2022:
«Медленная веб-страница. Что делать?»

Видео: https://www.youtube.com/watch?v=ow3eE1LokQ0
Слайды: https://bit.ly/slow_webpage
👍32
Waaaat
https://twitter.com/amasad/status/1567953865622061057

Рекомендую весь тред почитать (это не первый твит).
🔥3
Не нарадуюсь крутизне нового реатома☺️

Дока для реакт пакета третьей (альфа) версии готова - можно экспериментировать ;)
🔥9👍1
Кто и как до этого додумался 🙂 Очень интересно, почему какой-то один диапазон не выделили.

отсюда
Live stream started
Расскажу про redux-saga и почему о них важно знать каждому
Live stream finished (18 minutes)
Про redux-saga
artalog
🔥19
TypedMap

Разгребал гисты и нашел типизированную версию иммутабельной мапы - это почти что 80lvl по программированию на типах.

В реальности это можно использовать для управления коллекцией брендированных типов.

ЗЫ а вот тред в ТС чатике о дебаге и создании этого кода.
👍3
Ночью поднял reatom.vercel.app/npm-react на #mono и astro.build. Тул классный, но подробнее о нем расскажу позже, как опыта побольше наберется.

А по первой ссылке дока к реакт пакету третьего реатома и в ней есть очень интересный рецепт как описать вычисления в рендере, но делать их без ререндера, зацените (там и плейграунд есть) - см скрины.

А пример миграции с RTK совсем смешно выглядит.
👏2
Revolution OS (правильный перевод)

Я иногда забываю что идея открытых знаний и свободно переиспользуемого тулинга достаточно уникальна для ИТшки. Некоторые мои родственники или знакомые даже не подозревают как радикально иначе можно строить бизнес или просто делать какие-то дела. Фильм будет понятен и доступен любому “уверенному пользователю ПК”, рекомендую 🙂
11
https://t.me/nikitonsky_pub/390

Дизайн это не киллер фича, это основа комфорта, который прибавляет или вычитает от общего впечатления.
Амазон не меняется, потому что пользователь не любит когда что-то меняется, пользователю лучше всего что-то привычное, потому что оно понятно и предсказуемо, те комфортно.

Хороший дизайн - эффективен в том что бы быстро провести пользователя по целевому процессу, который заканчивается тратой его денег.

Что бы пользователь не тупил, интерфейс должен быть привычный и понятный.
Привычным его можно сделать скопировав дизайн практики из платформы где запускается приложение (веб/десктоп/нейтив). Кстати узнать о них можно из гайдов по доступности.
А что бы интерфейс был понятный нужна прям толика дизайна для выделения ключевых элементов. Ну или скрытия второстепенных.

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

Возвращаясь к амазону. Если у вас есть киллер фича и вы можете на ней сильно вырасти - не играйтесь с дизайном, а сделайте максимально просто и понятно. Сэкономите на настоящем и будущем.
Добавить брендинг проще чем его поменять.
👍8👎1
На выходных разбирался с инфраструктурой в монорепе реатома и нужно было решить несколько задач: мигрировать с nx на turbo, из-за этого использовать другой кодген для нового пакета, сделать что-то для упрощения публикации новых версий пакетов.

Почему с nx на turbo? Первый был для меня не удобен во многих мелочах, особенно в расширении для vscode на которое я возлагал большие надежды. Это еще терпимо, но я ни раз сталкивался с какими-то ошибками: какие-то заводил, какие-то просто не понимал как дебажить, воспроизводить и репортить - падает ошибка при запуске билда с графом на десяток пакетов, а откуда и почему не ясно.
На турбо оказалось норм, он меньше дает, но и попроще как-то - я это ценю.

По ссылке выше ишье как раз на багу в кодгене. Меня это напрягало, но было терпимо потому что сам формат был удобный - заводишь папку с кучкой файлов в которых просто специальным синтаксисом указываешь ключевые слова для изменения. В итоге, можно самому просто копирнуть папку и глобальным реплейсом за 5 секунд персонализировать темплейт в пакет. Удобно. Но как автоматизировать это другими инструментами, после миграции на турбо, я не нашел. Все говорят про plop, но он как будто заточен на кодснипеты. У меня простая задача - скопирнуть папку и сделать глобал реплейс.
Решил не привносить доп пакеты с доп сложностью, а написать свой скрипт - вышло достаточно коротко и внятно кмк.

С публикацией пакетов такая проблема: их много и следить за тем что изменилось очень тяжело, а как паблишить автоматически из CI я ещё не разобрался и не уверен можно ли вообще - у меня юбикей для OTP. Хотелось инструмент который может просто подсказать какие пакеты не актуальны в нпм. Я уже давно использовал npmjs.com/package/@jsdevtools/npm-publish и вроде норм, хотя оказалась что он не читает publishConfig.tag из пакаджисона - можно было бы запулреквестить, но я заметил что версию пакета он получает простой командой npm view package-name version и взяв тот же zx запили свой скрипт, избавив нодмодули от лишнего веса.

В общем, я доволен тем что сейчас так просто можно пилить свои небольшие скрипты и std ноды достаточно богато, а где его не хватает можно использовать простой концептуально zx.
👍5
До круглого числа осталось 35 человек.

Поделитесь ссылкой t.me/artalog/187 ;)
👍9😁7
artalog
До круглого числа осталось 35 человек. Поделитесь ссылкой t.me/artalog/187 ;)
Уфффф. Циферка так быстро прыгнула, что 1024 проскользнула между 1019 и 1027 🤩

Спасибо всем новым подписчикам и, конечно, всем тем кто был тут в этом году! Приятно видеть реакции на посты и еще больше приятно узнавать что-то новое в комментариях к ним. 🔥

С января я начал делать посты каждый день и думал что меня хватит месяца на 2-3, но сейчас в закладках десятки тем и не хватает лишь времени их переработать в текст. Впереди еще много интересного 😀
Напомню, самое интересное в закрепе: t.me/artalog/187

Конечно, невозможно не поблагодарить и посоветовать дружественные каналы, способствовавшие как росту этого канала, так и моему интелектуальному развитию:

@xanf_dev
@sergeysova
@melikhov_dev
@xufostation
@msosnovfeed
@valya_reads_issue
@bearlogin_dev
@kirjs_ru
@gorshochekvarit
@defront
Please open Telegram to view this post
VIEW IN TELEGRAM
22🔥8