Новости 512 #150

В этом выпуске: управление z-index на больших проектах, лучшие библиотеки для работы с датой и временем, долой Express, инстансы PM2, Lerna 4, husky 5, Mocha 8.3.0 и доклады с HolyJS Moscow 2020.

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

Стивен Фрисон (Steven Frieson) на SmashingMagazine рассказал о том, как управлять z-index на больших проектах. Суть достаточно проста: придать индексам семантику, назвав CSS-переменные понятными именами, и последовательно выстроить иерархию. Стивен отмечает, что такой подход не решает все проблемы, например, не поможет быстрее найти баг, связанный с индексами. Также он приводит много примеров и рассказывает, как его команда постепенно совершенствовала систему работы с индексами.

Мелисса Макьюэн (Melissa McEwen) в блоге Skypack опубликовала статью о лучших библиотеках для работы со временем и датами на JavaScript. Как вы можете помнить, moment.js канула в Лету, поэтому всем пришлось искать альтернативу. Команда Skypack в итоге выбрала библиотеку date-fns как лучшую замену общего назначения, Luxon — как удобную для работы с часовыми поясами, а Day.js — как легковесную и минималистичную альтернативу.

Разработчик Ромэн Ланц (Romain Lanz) в своём блоге на dev.to написал статью о том, почему стоит, на минуточку, перестать использовать фреймворк Express. Он отмечает, что пятая версия находится в альфе уже 6 лет и, например, не поддерживает async/await. В целом автор считает Express не вполне фреймворком, а роутером, вокруг которого всё остальное приходится строить самостоятельно. Он предлагает переходить на Fastify или AdonisJS. Возможно, даже кого-то убедит. Кстати, в AdonisJS он член core team, и это немножечко PR, но это не значит, что на другие фреймворки не стоит смотреть.

В блоге Vadosware была опубликована статья об определении оптимального количества инстансов PM2 в окружениях с разной аппаратной конфигурацией. Короткий ответ звучит почти как ответ на главный вопрос Вселенной и всего такого — 32. Вопрос поднялся из-за кейса с Heroku, где в документации предлагалось 28 инстансов.

Плейлист с докладами HolyJS Moscow 2020. В общей сложности это 27 докладов, воркшопов и других материалов. Были и зарубежные гости, и интервью с Дэном Абрамовым, микрофронтенды, новый язык для SPA и другие доклады. В общем, можно найти материал на любой вкус.

О лучших практиках создания каруселей на web.dev написала статью Кэти Хемпениус (Katie Hempenius). Она рекомендует использовать обычную HTML-разметку и Scroll Snap API, чтобы не просаживать производительность и не ухудшать метрику Largest Contenful Paint. Есть и совет касательно UX: Кэти рекомендует останавливать слайды карусели при наведении курсора или совсем отказаться от автоматического переключения, чтобы слайдер не ассоциировался с рекламой.

Следующий материал — опенсорсный репозиторий Awesome Resources от разработчицы Шахид Насер (Shahed Nasser). Там очень много ссылок на полезные материалы — в основном веб, но есть и алгоритмы, и машинное обучение, и другие разделы.

В заключение рубрики приложу ссылку, которая поможет стать гуру гуглинга. Там и про сложные запросы, и про использование логических операторов в запросах, и многое другое. Надеюсь, поможет в работе.

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

Вышел релиз-кандидат TypeScript 4.2. Напомню, что нового: шаблонные выражения теперь имеют шаблонные литеральные типы, более строгая проверка для in и новые флаги компилятора. Модификатор abstract теперь можно применять для объявлений конструкторов, также представлены breaking changes. Таким образом, полноценный релиз не за горами.

Появилась вторая бета Bootstrap 5. Во ней продолжили работу над новыми компонентами и расширением документации. Продолжается развитие utilities API. Идёт работа по оптимизации JS: размер JS уменьшается и оптимизируется производительность. Следующая бета должна стать финальной, а возможно, даже сразу будет стабильным релизом.

Вышла пятая версия husky — библиотеки для создания git-хуков. Новая версия быстрее и меньше, также существует возможность не устанавливать хуки автоматически, как в husky 4.

Вышла версия 8.3.0 фреймворка для тестирования Mocha. Были добавлены поддержка типа BigInt и код ошибки для тайм-аута выполнения тестов. Были обновлены зависимости и документация, также исправлена пара багов.

У этого выпуска новостей номер 150, а у последней версии Rust 1.50. Продолжается работа над константными дженериками, в ранг стабильных был переведён ряд методов API, а в пакетном менеджере cargo для команды update была добавлена опция --workspaces, которая позволяет ограничить обновление определенным рабочим пространством.

Вышла четвёртая версия инструмента для организации монорепозиториев Lerna. Теперь Lerna не поддерживает шестую и восьмую версии Node.js. Обновления зависимостей больше не должны вызывать лишние предупреждения. Также было добавлено много аннотаций для JSDocs. Помимо этого разработчики отмечают, что переход на новую версию должен пройти легко, потому что breaking changes не было.

Также отмечу релиз ядра Linux 5.11.

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

Исследователь безопасности Алекс Бирсан (Alex Birsan) опубликовал статью о взломе внутренних сетей более чем 35 компаний. Атака была произведена через пакеты, которые используют внутри компаний. Из публичных источников Алекс собрал имена приватных пакетов из внутренних сетей организаций. После этого он опубликовал на GitHub одноименные публичные клоны этих пакетов. Из-за ошибки в конфигурациях начали скачиваться и устанавливать пакеты из публичных репозиториев. Так исследователь получил доступ к внутренним сетям Apple, Microsoft, PayPal, Uber, Yelp и ряда других компаний. От разных компаний он получил около 130 тысяч долларов как вознаграждения по программам Bug Bounty, а ошибки были устранены.

Почтовый махинатор был пойман за руку в Яндексе. Один из трёх главных администраторов службы технической поддержки сервиса Яндекс.Почта, который имел полный доступ к инфраструктуре, давал доступ к почтовым ящикам посторонним людям. Около 5 тысяч ящиков были скомпрометированы. Теперь проводится внутреннее расследование, и процессы перестраивают для усиления безопасности данных пользователей.

Комментарии

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