Интересные публикации
Брамус Ван Дамме (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.