artalog
4.24K subscribers
542 photos
40 videos
40 files
911 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
useEvent отменили 💁‍♂️

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


export function useEvent<T extends (...args: any[]) => any>(callback: T): T {
const ref = useRef({
stableFn: ((...args) => ref.current.callback(...args)) as T,
callback,
});
// useLayoutEffect for React <18
useInsertionEffect(() => {
ref.current.callback = callback;
});
return ref.current.stableFn;
}
👍10💩1🤣1
Live stream started
Live stream finished (15 minutes)
В 2015 заканчивалось мое обучение на специалиста по информационной безопасности.
Учился я в МФПУ Синергия на вечерке.

Полезной нагрузки там было минимум по целому ряду причин. Но весной на госах мне повезло с вопросом и я сдал их на отлично, хотя программу знал максимум на 5%.

На работе в этот момент у меня было все ещё лучше, я был руководителем направления и получал кучу актуальных знаний. В общем, я как-то заморочился с вопросом справедливости моих оценок и бросил универ, забив на диплом, потому что посчитал что такая корочка - вранье и оскорбление, а не резльутат труда, которым можно гордиться.
20💔8🤔3
artalog
Архитектура веба В комментариях к этому посту Никиты Прокопова опять начался дискурс об ошибочном применении веба (точнее браузерных технологий) для написания приложений. Мол, только нативные технологии, только хардкор, только так можно контролировать перф…
Только что @Akiyamka мне напомнил об еще одной важной архитектурной составляющей веба, добавил в пост (прочитайте целиком, если еще не видели):

8. The last, but not least. Исходники веб страницы открыты и кто угодно может их инспектировать и модифицировать. Редкая фича в нативке. Профит для пользователя в этом огромный: режим для чтения, контрастная тема, блокировщик рекламы, да просто свои стили или скрипты. Конечно, с этим есть сложности, особенно в плане безопасности. Но в конечном итоге, открытые платформы более надежны: они открыты для непредвзятого аудита и хотфиксы к ним делать проще.
👍14
Не знаю каким видео сегодня с вами поделиться, поэтому давайте сделаем AMA в 18-00 (GMT+3). Полайвкодю разнообразную работу на реатомом и поотвечаю на любые вопросы.
👍4
Live stream started
Live stream finished (52 minutes)
Why I don't use Prettier by Anthony Fu

Но альтернативы я все равно не вижу.
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Явное лучше не явного.

Частенько наталкиваюсь на такие проблемы перевода валют - запятая разделяет тысячи или десятичную дробь?

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

Как можно исправить пример из видео? Ну помимо того что инпут валюты должен учитывать принятый в стране валюты разделитель (для us запятая разделяет тысячи), можно сделать ввод дробей валюты более явным отдельным инпутом центов / копеек.

Но я UX репорты не делаю, высказываю свои мысли по своему опыту.
👍6👎1
artalog
reactive-computed-bench После ананоса сигналов преакта многие ринулись писать свои аналоги. А потом начали их бенчмаркать 🌚 Но что мерить и как? Нашли тест о Cellx, который проверяет возможности строить глубоковложенные связи(!) и немного его поменяв начали…
Говорят что реактивность это огромный оверхед по перфу. И я с этим полностью согласен. В простых случаях.

Но чем код сложнее, тем больше реактивность (не только она, любой тулинг) помогает автоматически его оптимизировать, в этом и заключается ключевая ценность.

Решил сделать наглядный пример того как инструменты помогают оптимизировать производительность даже простейшего кода. И логика тут железобетонная - O(n) быстрее O(n!), как только сложность кода и алгоритма становится больше линейной - лучше полагаться на автоматический тулинг (если есть подходящий).

P.S. добавил ночью в доку реатома описание основных паттернов оптимизации производительности: atomization и ref pattern.
👍6🤮1
Последнее время я ничего не смотрю, хотя в заметках что-то оседает, вот что за неделю набралось:

Qwik Core Developers Training (погружение в кишочки Qwik)

"Programmable Ink" by Szymon Kaliski (Strange Loop 2022) (иследование: что если программировать на планшете со стилусом?)
👍4
Как что-то объяснять фронтендеру:
Forwarded from Hey 👋, i'm 𝖙𝖍𝖊𝖐𝖎𝖇𝖆! キバ
Блокчейн со смарт контрактами — это как большой redux store с редьюсерами и селектами.

Смарт контракт — это подобие сгруппированных редьюсеров и селекторов в одном файле.

За работу с редьюсерами взымается плата, так как они апдейтят состояние.

За работу с селекторами плата не взымается.
🔥24🤔9👎1👏1💩1
Зачем? Связанный список позволяет сохранить порядок элементов соответствующий их вставки и и берет за это константную сложность. Раньше Set использовал, но он в 3+ больше памяти ест, вот сейчас пробую на LL перейти.
👍7🤔4
https://t.me/pauline_dev/64

В универе нам рассказывали что есть сейсмические и акустические системы перехвата информации, которые по шуму и / или вибрации серверной стойки могут что-то там понять и даже перехватить. 10-30 лет назад такие системы, конечно, были более актуальны, нежели сейчас с виртуализациями, шифрованиями, низковольтными герцами и твердотельными накопителями. Но осадочек остался, я получил полное безразличие к ИБ, от безысходности.

Года три назад хотел возобновить интерес к этой теме (ИБ), почитал пару недель securitylab.ru, нервно посмеялся над тем что стабильно каждую неделю - месяц выходит новый zero-day и опять забил…
artalog
Gitpod Я уже два года пользуюсь этим крутым сервисом для OSS, а осенью затащил селфхост на работу для нашего гитлаба. Вот список основных фич и особенностей, которые я тогда презентовал команде: - Запуск ВМ (виртуальной машины) в облаке с vscode сервером…
Если вы собираетесь переехать, переезжаете или переехали и думаете а что же делать со старым системным блоком или у вас просто не достаточно мощный ноутбук, то напоминаю что в 2022 уже достаточно спокойно можно переехать в облака.

Я пробовал засетапить удаленную машину в 2019 и это было реально больно. Обычные виртуалки не подходили из-за огромной цены на RAM, да и интеграция IDE - ssh работала так себе.

К счастью, скоро c9.io переродился в gitpod.io и подарил нам простую и удобную среду разработки. Это не реклама, я правда очень доволен этим сервисом и был с ними практически с самого начала, два года разрабатывая Reatom только там. Сейчас это мой сервис по умолчанию для работы с любым OSS, но и в работе я его иногда применяю.

Подробно о gitpod рассказывал тут.

Конечно, есть еще и codespaces.
Недавно codesandbox перезапустился на эту же тему.
Есть еще replit.com и glitch.com, из тех что умеют к IDE поднимать отдельный бекенд. Но все они в чем-то ограничены и никто, кроме гитпода, не дает возможность настраивать базовый docker конфиг (поправьте, если ошибаюсь), что бывает важно в промышленной разработке.

P.S. есть еще https://www.jetbrains.com/remote-development, но я не пробовал.

P.P.S. coder.com
2