artalog
4.22K subscribers
538 photos
40 videos
40 files
905 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
Live stream started
Сейчас быстро расскажу про uvu https://mobile.twitter.com/artalar_dev/status/1455586465656807428
Live stream finished (24 minutes)
Бугаенко в интервью В офисе высказал одну очень важную мысль, которую я уже давно замечаю вообще во всех сферах жизни. И в программировании большинство холиваров именно от этого:

Люди хотят видеть только чёрное и белое, только две противоположных стороны вопроса. Думать о большем сил не хватает.
👍16💩5👎2🤔2
#why_ff_is_bad

Для FieldProps.type=“checkbox”`в `fieldState.input появляется отдельное поле checkbox, но поле value остается не тронутым и это ваще не удобно при парсинге.
Live stream started
Призыв к контрибьюшену в реатом сейчас обсудим)
Live stream finished (20 minutes)
esbuild is faster but the built programs on average are slower
(оригинал отдает 404 потому что сайт сейчас переезжает на другой движок)

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

Помню что когда-то что-то читал в ишьесах core-js, но из свежего есть только статья из топика, информация в которой тоже уже могла устареть.

Часто, оптимизации касаются каких-то багов проблем и недоделок со стороны движков, например как деоптимизация let и const в сафари.

Но есть и классические оптимизации. Вы можете прямо сейчас зайти на try.terser.org и вставить туда такой код:


const loop = (n, cb) => { while(n--) cb() }
export const fn = n => loop(n, () => {})


Внимательно посмотрев на выхлоп можно увидеть две оптимизации: инлайнинг функции loop и трансформация while в for, который в движках (был?) лучше оптимизирован.

UPD: хммм, а инлайнинг там не правильный какой-то, вместо тела функции вставляется сама функция, видимо, для вырезания объявления переменной. Не круто.
👍4👎2
Temporal

В конце 2020 года я попробовал полифил для темпорал и уже тогда мне очень понравилось. Ужвал (сотрудник Игалии, активно учавствует в разработке стандартов и разных браузеров) еще тогда говорил что полифил стабилен и безбажен (в той переписке пропосал был еще на втором стейдже, но он уже год как он взял третий).

Стоит понимать что это стандарт и мы все будем работать с датами именно так.

Хотя, я делал небольшой ПР по исправлению типов, проблем в использовании практически не возникало. Первые пару дней я втыкал в доки что бы понять общую концепцию: точное время, таймзоны, календари, продолжительности (duration) и как они между собой связаны. Сейчас же есть диаграмка в помощь для этого.

Я не могу назвать всю эту систему простой, но она очень хорошо продумана, позволяет описывать действительно сложные трансформации достаточно просто / декларативно / есть много встроенных свойств, методов и опций к ним.

Стоит понимать что это стандарт и мы все будем работать с датами именно так.

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

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

Кмк это редкие пограничные проблемы. Лично меня больше всего смущает и расстраивает вес полифила: 178.67KB -> 44.59KB (gzip)

Стоит понимать что это стандарт и мы… Ну вы поняли 🙂

Если же вы не понимаете откуда вообще берется вся это сложность с датами крайне рекомендую к просмотру доклад Пару календарей назад я был совсем другим, Алексей Охрименко.
👍10
Новое хобби))

#m5stack
Live stream started
Расскажу про #m5stack и вообще эту тему с микроконтроллерами
🔥3
Live stream finished (19 minutes)
Forwarded from Сергей Мелюков (Сергей Мелюков)
HolyJS 2022 - Jest.pdf
6.8 MB
🔥3
C flatMap так удобно иммутабельно массивы изменять, довольно кратко можно описать удаление / добавление элементов в любом месте.

Сейчас разрабатывается примитивный атом для работы с массивом и я не могу решить какие методы туда включить. С одной стороны, с flatMap и [added, …state] / […state, added] можно просто решить любую задачу. С другой стороны это все равно код который нужно писать и биндить, и может для частых кейсов нужно иметь готовые методы? Но что есть частые кейсы, как их выделить?
Если есть мысли - поделитесь в комментариях в issue.
👍5🔥2🤔2
bun.sh

А вы уже слышали про новый рантайм для джаваскрипта? Что бы просто распарсить и выполнить валидный EcmaScript код нужен движек, вроде V8, который в хроме используется. Но для повседневной работы этого совершенно не достаточно: мы используем таймауты, живущие в параллельных потоках, ходим в сеть, работаем с файлами или отправляем что-то на отрисовку. Вся это огромная и наисложнейшая экосистема апишек обслуживается платформами вроде браузеров или node / deno / GraalVM.

Но уже больше года разрабатывается новый рантайм для серверных JavaScript / TypeScript приложений - bun. Его ключевая особенность - параноидальный фокус на перфе. И интересный стек: JavaScriptCore как движек и ZIG для собственной реализации всего остального.

В общем, загляните на главную и почитайте что автор сам о нем пишет. А вот, для интереса, скрины результатов запуска перф тестов нового реатома на node@16 и bun
🤔12🔥4👍3👎3💩1