Новости 512 #183

В этом выпуске: V8 9.2, scroll-linked animations, использование Redis с Node.js, промисы и функциональное программирование в JavaScript, визуальное тестирование, а также релизы с устранением уязвимостей и багов в Firefox 90 и Chrome 91.

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

Брамус Ван Дамме (Bramus Van Damme) написал статью о новой фиче CSS — анимациях, связанных со скроллом. В комбинации со свойством scroll-timeline фича позволяет отказаться от нескольких типичных JavaScript-решений. Случаев применения Брамус выделяет несколько: хэдер с параллаксом, появление и скрытие изображений, индикаторы каруселей, анимация печати текста. Ко всему, конечно же, есть подробные примеры.

Дмитрий Павлютин (Dmitri Pavlutin) в своем блоге написал о промисах в JavaScript. Он рассказывает, как промисы делают программирование асинхронности проще, как пользоваться промисами — извлекать значения после выполнения или ошибки, чейнить промисы, — а также как пользоваться async/await-синтаксисом. Получилось коротко и ясно, если вы ещё не совсем разбираетесь в промисах и чувствуете себя неуверенно, эта статья — ваш выбор.

В блоге Telerik Леонардо Малдонадо (Leonardo Maldonado) опубликовал статью о функциональном программировании в JS. Она довольно базовая и покрывает простые вещи: объекты первого класса, чистые функции и функции высшего порядка, композицию и иммутабельность. Кроме того, для углубленного изучения темы Леонардо советует книгу Professor Frisby's Mostly Adequate Guide to Functional Programming. Она бесплатна, и в ней больше материала по продвинутым темам.

Ивайло Герчев (Ivaylo Gerchev) написал статью об использовании Redis с Node.js. Redis — in-memory хранилище данных, которое применяется в основном как база данных, кеш и брокер сообщений. Статья покрывает базовый обзор фич, установку и конкретные примеры: кеширование, реализацию брокера сообщений и менеджмент сессий пользователя.

Чем может помочь визуальное тестирование, и как его применить на своих проектах — на SmashingMagazine рассказывает Колби Фэйок (Colby Fayock). Он коротко пробегается по основным типам автоматизированного тестирования и рассказывает о визуальном тестировании — например, обычном или попиксельном сравнении скриншотов. Как плюсы он отмечает, что нужно поддерживать меньше кода, эти тесты покрывают то, о чем вы могли забыть, и они менее хрупкие. Конечно же, не без минусов: визуальное тестирование не может проверять бизнес-логику, завязанную на данных. Также Колби поднимает вопросы интеграции визуальных тестов в текущий проект и CI/CD.

Кэти Даттон (Cathy Dutton) написала о том, как менялись с течением времени и появлением новых CSS-фич подходы к дизайну. Получился неплохой экскурс в историю, обзор изменений и рассуждение о новых фичах — таких, как, например, Container Query. Итоговый вывод Кэти: нужно сосредоточиться на контенте и пользователях, быть готовым к изменениям в подходах и гибко их адаптировать.

Всем любителям CSS посвящается. Мате Маршалко (Mate Marschalko) на css-tricks создает аналоговые часы на чистом CSS. Используются CSS-переменные, трюки с анимацией и функцией calc(). После реализации аналоговых часов автор создает и цифровые. Вряд ли вам понадобится это на реальных проектах, но поупражняться, закодить пример и поэкспериментировать очень даже подойдет.

Завершают рубрику две полезности: подборка ссылок по типографике от Криса Койера (Chris Coyier) и стартовый шаблон проекта на Express с поддержкой TypeScript.

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

JavaScript-движок V8 отметился релизом версии 9.2. Главное нововведение — добавление функции at(). Метод работает с массивами и строками, он позволяет получить доступ к элементу коллекции по индексу и поддерживает отрицательный индекс. Например, вызов .at() с аргументом -1 вернет последний элемент коллекции. По идее метод должен упростить доступ как раз к элементам в конце коллекций. Приложу также ссылку на заметку-эксплейнер по фиче, которую подготовила команда V8. Эта версия движка будет доступна в стабильном релизе Chrome 92.

По не самой лучшей традиции релиз Firefox 90 не обошелся без проблем. Вышла версия 90.0.1. В ней было устранено несколько проблем: зацикливание при обработке ответов по протоколу HTTP/3, которое приводило к повышенной нагрузке на процессор, несколько случаев краша браузера и другие.

Уязвимость нулевого дня была устранена в срочном релизе Chrome 91. Детали пока не раскрывают, но она вызвана неправильной обработкой типов в V8. Кроме того, было устранено ещё 8 уязвимостей.

Angular и Vue плавно движутся к следующим релизам минорных версий. В разработке беты Angular 12.2.0 и Vue 3.2. Подробнее о новых версиях — в следующих выпусках.

Также отмечу релиз CakePHP 4.2.8 и анонс девятого мажорного релиза фреймворка Laravel.

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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