artalog
4.2K subscribers
531 photos
40 videos
39 files
896 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
Пытаюсь найти хоть какой-то адекватный пример использования xstate. Плохо получается, большинство примеров вообще не про стейт машины, а про управление состоянием. А использовать xstate для каунтера или дата фетчинга ну как-то полный оверкил.

Вот хоть какой-то адекватный пример процесса: Stopwatch. Очень простой. Но вот вы сравните и объясните мне, оно точно того стоит??

Бандлсайз этой простой модели на xstate 33кб, на реатоме 3кб.
👍12💩9🥱3😁1🤔1🌚1
Как же меня достало вручную чекать обновление зависимостей после git pull. Почему у npm / yarn / pnpm нет (или есть) флага под это? Написал скрипт, вставьте его себе перед стартом дева


{
"dev": "node deps_check.mjs && vite”,
}



import { execSync } from 'child_process';
import { createHash } from 'crypto';
import { readFile, writeFile, mkdir } from 'fs/promises';
import { resolve, dirname } from 'path';

await mkdir(resolve(dirname(''), './node_modules/.cache')).catch(() => {});
const cachePath = resolve(
dirname(''),
'./node_modules/.cache/deps_check_lock_hash.txt',
);
const lockFilePath = resolve(dirname(''), 'package-lock.json');

const lockHashCache = await readFile(cachePath, {
encoding: 'utf-8',
flag: 'a+',
}).catch(() => {});
const lockHash = createHash('sha256')
.update(await readFile(lockFilePath, { encoding: 'utf-8' }))
.digest('hex');

if (lockHashCache !== lockHash) {
execSync('npm i', { stdio: 'inherit' });
await writeFile(cachePath, lockHash);
}


Вопрос только, можно ли как-то весь выхлоп из execSync форвардить выше? спасибо, обновил.
👍181
Мне станет страшно ни когда мы начнем вместо кода хранить промпт, а когда таким образом переписанный претиер станет выдавать такие фиксы:
😁33
Теперь звук от меня вы будете слышать через FIFINE AmpliGame A8 - очень бюджетный микрофон с, на удивление, хорошим качеством, рекомендую.
👍6
Нашел у нас в коде функцию форматирования отображения большого числа, подумал, повспоминал, есть же Intl.NumberFormat!

MDN мне с ним не особо помог, но в гугле сразу нашлась статья с нужным примером. Что бы попробовать разные варианты использования и сразу увидеть наглядный результат решил вспомнить вот что: https://observablehq.com/d/d0d9dc332f8842c6
🔥24👍6😱3
Толку от этого SSR, если проблема в головах… Форма регистрации на https://practicum.yandex.ru/promo/events/b2b_motivation подгружается секунд 5, без какого-либо плейсхолдера или лоадера я просто смотрел в серый квадрат.
😁30🤔1
Как я хочу писать красивости на CSS и как приходится…
💯48
age = 2^5
🎉138🍾22💊4👏2
Чего мне не хватает в зоде, так это какого-то “parseExtends”
https://tsplay.dev/w6eMGW
💩7🤨31🤮1
tg_image_3563175577.jpeg
538.1 KB
Крутая монохромная тема: https://marketplace.visualstudio.com/items?itemName=shytikov.blanche

Такие темы всегда, почему-то, в чем-то не доделаны. Так и в этой, терминал другой расцветки. Но сам код и менюшки очень хорошо сделаны.
💩27👍6💊4🤷21🌭1
Как же круто что ТС умеет выводить тип массива на основе push в цикле. Особенно удобно, когда нужно промапить что-то с условием, а использовать flatMap или доп filter с тайпгардом из-за перфа не хочется.
👎13🔥8😁7👍1
Зачем реатом во vue?

У нас там апдейты подъехали, стоит рассказать о мотивации.

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

- Реатом лучше позволяет описывать логику полностью отделенную от компонента, которую потом еще и легче дебажить. Проявляется это в наличии лайфсайкл хуков у каждого атома (можно инициировать ресурс на первую подписку - использование в компоненте, и уничтожить ресурс при последней отписке) и выделенной сущности “экшен”, для удобного разделения кода на логические блоки. Т.к. все эти сущности именованны (автоматически еслинтом), в последствии можно наблюдать полезные логи того что поменялось и по какой причине (уникальная фича реатома).

- За счет первого пункта реатом можно использовать как ядро микрофронтовой системы, у нас уже есть адаптеры для vue, react, solid, svelte, и в разработке адаптеры для lit и angular.

- У реатома есть очень мощные примитивы для описания асинхронной логики, собравшие все самое лучшее с rxjs, redux-saga и TanStack Query. Тут впринципе альтернатив, вроде, нет.

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

Если стало интересно, вот видосики по реатому: https://www.youtube.com/playlist?list=PLXObawgXpIfxERCN8Lqd89wdsXeUHm9XU
👍22💩10🔥93❤‍🔥1🤮1
В твиттерах обсуждают объединение ролей дизайнера и программиста в одного инженера, которому будет помогать AI.

Такое нас ждет будущее?
Anonymous Poll
30%
Ну конечно
70%
Та нет
😁7💊4🤔3🤪2
Интересно как это скажется на перфе vscode.
Forwarded from mefody.dev
Подсветка кода на странице при помощи Custom Highlight API

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

Брамус показывает, как можно применять современный Custom Highlight API, чтобы не создавать span для стилизации в принципе. Это такая апишка, которая уже работает в Chrome 105 и Safari 17.2. И она позволяет при помощи JavaScript разбивать текстовые узлы на набор параметризированных токенов. Как это делать в JS, лучше смотреть в самой статье. Но зато в CSS всё становится сильно приятнее:


::highlight(important) {
color: red;
font-weight: bold;
}

::highlight(attr) {
color: violet;
}


Имена хайлайтов как раз задаются в JS.

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

https://www.bram.us/2024/02/18/custom-highlight-api-for-syntax-highlighting/
🔥26👍41
старики1.mp4
178 MB
Моя очередная попытка натянуть опыт МДС на подкаст про ИТ.
👍9
Forwarded from Yandex for Developers
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 По мотивам Дня всех влюблённых: открываем регистрацию на «Я💛Фронтенд!»

Если при разговоре о новых инструментах разработки, фреймворках и языках у вас учащается сердцебиение, коленки подкашиваются, а в глазах появляются большие мультяшные сердечки — регистрируйтесь на нашу конференцию для всех влюблённых во фронтенд!

Послушаем доклады про новые инструменты, разберём интересные кейсы из реальной практики, подискутируем с экспертами, поучаствуем в турнире Capture the Flag. И конечно, будем общаться, знакомиться и развивать наше классное сообщество. Сейчас мы только собираем полную программу, но уже известны первые спикеры:

🔸 Илья Бирман, Дизайн-бюро Артёма Горбунова. Проектирует транспортные схемы, сайты и приложения, системы навигации в общественных местах. Руководит работой дизайнеров и разработчиков, работает арт-директором Бюро и над собственными проектами.

🔸 Алексей Симоненко, HTML Academy. Начал заниматься веб-разработкой ещё в прошлом тысячелетии. Сейчас вместе с HTML Academy помогает разработчикам становиться лучше и приводит в профессию новое поколение специалистов.

🔸 Никита Балихин, Газпромбанк. Tech Lead в команде WebServiceKit Газпромбанка. Фронтендом занимается с 2018 года: любит углубляться в принципы работы инструментов, чтобы принимать более осознанные решения, и старается упростить жизнь другим разработчикам.

🔸 Никита Дубко, Яндекс. CSS-евангелист, первый сайт сверстал ещё в школьные годы. Помогает организовывать FrontendConf, MinskCSS и MinskJS. Доброжелюбный бородач в подкасте «Веб-стандарты».

Встречаемся 23 марта в Москве и онлайн.

✏️ Регистрируйтесь, если тоже разделяете нашу большую и светлую любовь к фронтенд-разработке 💛

Подписывайтесь 👉 @Yandex4Developers
Please open Telegram to view this post
VIEW IN TELEGRAM
👎15🔥11👍43🤮2💩2