Новости 512 #270

В этом выпуске мы поговорим о релизах Chrome и Firefox, узнаем как работать с длинными тасками, найдём утечки Observable, углубимся во View Transition API и посмотрим на другие интересные материалы.

Всем привет, это «Новости 512» от CSSSR. В этом выпуске мы поговорим о релизах Chrome и Firefox, узнаем как работать с длинными тасками, найдём утечки Observable, углубимся во View Transition API и посмотрим на другие интересные материалы.

Интересные публикации

Случается так, что задача длинная, дорогая и есть смысл её разделить. Способов сделать это не один, и у каждого есть свои преимущества. Алекс МакАртур (Alex MacArthur) в своей статье поднимает эту тему и рассказывает аж о семи разных подходах к решению этой задачи. Этот список включает в себя работу с планировщиком, Web Workers, setTimeout() с рекурсией и другие. По каждому из них, естественно, есть пример и лаконичный разбор. В конце статьи вы найдёте резюме, в котором Алекс как раз говорит о том, какие есть трейдофы и какой подход лучше выбрать в той или иной ситуации. Также доступен и перевод на Хабре.

Вы когда-нибудь задавались вопросом сколько длится секунда в JS? Мне бы и в голову никогда не пришло. Однако, Иаго Ластра (Iago Lastra) рассказал о том, как считается время в JS на самом деле и почему это может быть важно. Он делает короткий экскурс в подсчёт времени в принципе, а потом переходит конкретно к JS. В JS время в формате POSIX, который не предусматривает коррективы секундной издержки. В большинстве приложений этого абсолютно достаточно, а вот в научных, финансовых или высокопроизводительных приложениях этот нюанс придётся учитывать. Подробнее о времени и при чём тут атомы цезия читайте по ссылке в описании.

Существует такой фреймворк для разработки десктопных приложений при помощи веб-технологий, как Electron. Не знаю насколько он популярен на самом деле, но, например, десктопное приложение Slack, да и многие другие написаны именно на нём. Felix Rieseberg — один из мейнтейнеров проекта — решил развеять некоторые мифы о нём. Например, он рассказывает о том, что традиционно десктопные языки с ним тоже интегрируются, веб-технологии уже давно применяются вне веба, а размер приложений и производительность уже не являются проблемами Electron в наше время. Если у вас предвзятое отношение к Electron — стоит почитать.

Говорят «сколько воды утекло», а у нас «сколько памяти утекло». Сколько же её может утечь, как это обнаружить и что делать, в своей статье на Хабре рассказала Алан Ходов. Речь идёт о случае, когда в Angular не отписываешься от Observable. Для того, чтобы продемонстрировать это Алан реализует простое приложение, в котором отписаться «забывает». После этого он ищет утечку при помощи DevTools, устраняет её и сравнивает картины в DevTools до и после. Получился довольно лаконичный гайд по поиску подобных утечек.

В TypeScript существует две разные нотации для массивов T[] и Array. В целом они вроде бы эквивалентные, но Аксель Раушмаер предпочитает вторую нотацию. В своей короткой заметке он рассказал о том, почему нотаций две и почему вторая ему нравится больше. Причина в том, что код лучше читается, когда у массивов могут быть элементы разного типа. В заметке вы также найдёте несколько нюансов работы разных нотаций.

Давненько у нас не было материалов с CSS Tricks. Насколько я понимаю, у ресурса какое-то время не было спонсора, теперь появился новый и публикация статей возобновилась. Сегодня их будет аж четыре.

Хуан Диего Родригез (Juan Diego Rodríguez) окунулся в глубины документации View Transition API и задался вопросом, что такое дескриптор types и зачем он нужен. Он позволяет определить разные анимации для перехода между разными документами. Это полезно, но лично мне было несколько сложно понять, как корректно их задать для разных документов и показалось реально замудренным. Может быть вы разберётесь лучше.

@counter-style — это правило в CSS, которое позволяет создавать пользовательские стили для маркеров списков. Стандартные возможности ограничены, а это правило позволяет использовать иконки, создавать системы нумерации, в общем, есть с чем поиграться. Об этом и пишет Джефф Грэм (Geoff Graham) на CSS Tricks. Он приводит интересные примеры и разбирается в возможностях правила.

Ещё два материала скорее более практические гайды. Первый посвящён позиционированию текста вокруг элементов при помощи CSS-свойства offset, а второй — созданию меню с применением якорного позиционирования для создания эффектов.

Мягкое введение в WASM делает команда Deno после релиза версии 2.1, в котором появилась поддержка WASM первого класса. Рассматривается базовый пример создания и компиляции WASM-модуля, его подключение и вызов функции из него. Пример действительно супер-простой, но если вы работаете с Deno и пока не пробовали WASM совсем, то он может вдохновить вас на дальнейшие шаги.

Ещё одна короткая заметка на этот раз от Робина Уриха. Он рассказывает о том, как ваш Vite-проект на чистом JS подружить с TypeScript. В ней он рассказывает, как создать правильные файлы конфигурации, подружить их между собой и где ещё могут понадобиться коррективы. Коротенькая инструкция под конкретный случай.

Дальше — полезные ссылки и материалы, но уже покороче.

Я довольно много за всё время существования новостей рассказывал про статьи Адама Аргайла (Adam Argyle) про реализацию каких-то фич. Они все собраны в Nerdy Notebook — ресурсе, на котором он собрал те самые фичи. Это большой сборник, где можно найти много рецептов.

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

Все пользуются либо Jest, либо Vitest, либо тест-раннером Node.js. Но есть такой тест-раннер как Poku. Он кросплатформенный, легковесный, производительный и современный. Если интересуетесь тест-раннерами — поглядите.

Ещё один небольшой инструментик — Ruck. Это опенсорсный фреймворк для создания React-приложений с Deno. Исходя из readme, он позволяет создавать как простенькие, так и сложные приложения.

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

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

Завершит рубрику документальный фильм о фреймворке Angular. Кстати, создатели этого фильма делали документалки и про другие фреймворки.

Новости релизов

Доступен Chrome 133. В этом релизе была добавлена продвинутая версия функции attr(), которая позволяет использовать в качестве типа не только строки. Теперь при помощи container queries можно стилизовать дочерние элементы в зависимости от состояния скролла. В DevTools AI-ассистенту Gemini добавили историю чата, которая не очищается между сессиями. Больше подробностей в официальных обзорах Chrome и DevTools от Google.

Firefox 135 получил экспериментальную поддержку Temporal API, а такие фичи как доступ к чат-ботам прямо в браузере и автозаполнение банковских карт теперь доступны глобально. Помимо этого был расширен перечень языков в Firefox Translate. Больше подробностей в блоге Firefox.

Deno 2.2 порадовал нас улучшениями в основном в области качества жизни разработчиков. Этот релиз включает в себя интеграцию с OpenTelemetry, новые правила для линтера, обновление версии TS и движка, а также поддержку node:sqlite. Помимо этого поработали над производительностью и WebGPU.

В новой версии Astro 5.3 ускорили рендеринг страниц, добавили автоматическую инициализацию хранилица сессии, а также более гибкий бандлинг файлов для Netlify. Больше подробностей в блоге Astro.

Также в этом выпуске отмечу релизы релиз-кандидата TypeScript 5.8, Prettier 3.5, pnpm 10.3.0 и MySQL 9.2.0.

Другие новости

Помните про инициативу Interop? Это сотрудничество разработчиков браузеров для согласованной разработки браузерных фич, чтобы они быстрее получали стабильную кросс-браузерную поддержку. Были объявлены фичи на 2025 год. В этом году в фокусе: Storage Access API, pointer/mouse events, событие scrollend, URLPattern API, а также дальнейшая интеграция JavaScript и WebAssembly (WASM). В этом же ряду такие интересные фичи как правило @scope, View Transition API, якорное позиционирование и другие. Больше подробностей и полный список фич по ссылке.

Продолжается юридический танец вокруг торговой марки JavaScript. Oracle, возможно намеренно, ответил на прошение не вполне корректно оформленным своим прошением. До самого JavaScript, кстати, пока так и не добрались. И непонятно, когда доберутся. Если вам интересно, в блоге Deno вы можете прочитать всю историю и юридические документы. Кстати, оказалось неожиданно интересно.

На сегодня это всё. Всем пока и до встречи в следующем выпуске.

Пишите нам и читайте

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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