Интересные публикации
Первый материал — книга Сергея Константинова о проектировании API. Книга ещё пишется, но доступны введение и первая часть. Введение посвящено определению API и критериям качества, условным обозначениям и версионированию. Первая часть познакомит читателя непосредственно с проектированием — от определения области применения до конечных интерфейсов. В книге будет ещё 2 части: вторая целиком посвящена обратной совместимости, а третья — менеджменту API как продукта, его маркетингу и работе с сообществом. Если вам интересно проектирование API с разных сторон, рекомендую следить за этой работой. Мы тоже будем и расскажем о выходе новых частей в следующих выпусках.
Ахмад Шадид (Ahmad Shadeed) в своем блоге написал статью о работе CSS-свойства clip-path(). В статье Ахмад показывает базовый пример работы свойства, а затем подробно разбирает clip-path(), начиная с системы координат и всевозможных значений свойства до конкретных примеров использования. В конце статьи есть несколько полезных ссылок по теме.
Джек Франклин (Jack Franklin) из команды разработки DevTools и Puppeteer в своей статье рассказал о планах переноса кодовой базы Puppeteer на TypeScript. Цели простые: стабилизировать кодовую базу, улучшить тестируемость. В статье описывается также подход к миграции самой кодовой базы и тестов, которыми покрыт проект.
На Mozilla Hacks появилась статья об адаптации Mozilla Firefox для процессора Apple Silicon. В тексте описываются трудности, с которыми столкнулись разработчики. Например, как они подошли к формированию билдов для разного железа, какие были сложности с видео, и как пришлось изменить график релизов из-за нового процессора.
Джозеф Круз (Josef Cruz) в своем блоге на Medium собрал 20 инструментов и библиотек для визуализации данных на JavaScript. В статье есть как специализированные решения для графиков и диаграмм, так и общие, многофункциональные, как, например, Three.js. Также автор прилагает к каждому пункту короткое описание фич. Если визуализация данных есть среди ваших задач — стоит посмотреть, возможно, что-нибудь пригодится.
10 лучших практик по контейнеризации Node.js-приложений с Docker — в своей статье их собрали Йони Голдберг (Yoni Goldberg) и Лиран Тал (Liran Tal). Затрагиваются вопросы от работы с образами до безопасности. Статья достаточно базовая и вряд ли расскажет что-то новое опытным пользователям Docker, но если вы только начинаете, она будет довольно полезной.
В заключение рубрики — более 300 вопросов для интервью по React с ответами. Это перевод популярного англоязычного репозитория от Игоря Агапова. Сразу скажу, что ко всестороннему собеседованию с погружением в ванильный JS этот список подготовиться не поможет. Однако на тему React вопросов затронуто очень и очень много. Автор приглашает всех поучаствовать в дополнении списка вопросов и делится дальнейшими планами в заметке на Хабре.
Новости релизов
Вышел Chrome 88. В нем появился Manifest V3 — новая платформа для создания расширений. Расширения на третьей версии будут быстрее ревьюить, они будут потреблять меньше ресурсов и будут прозрачнее для пользователей. Вторую версию по-прежнему можно использовать, но в будущем она будет помечена как устаревшая и отключена. Что ещё: ссылки с атрибутом target="_blank" будут по умолчанию с rel="no-opener". Метод addEventListener теперь поддерживает удаление обработчиков при помощи AbortController. Инструменты разработчиков открываются на 37% быстрее, ошибки CORS более информативные и можно просматривать события Web Vitals на вкладке Performance. Ещё одна фича — эмуляция отсутствия поддержки WebP и AVIF.
Небольшой релиз Angular версии 11.1. Была добавлена поддержка TypeScript 4.1, улучшены сообщения об ошибках и добавлена экспериментальная нативная поддержка Ivy в language service.
Следующий релиз довольно неожиданный. Это релиз full-stack JS-фреймворка Meteor 2.0. Основное нововведение — добавление Hot Module Replacement. Ещё одно большое изменение — это начало объединения всех продуктов компании в единую экосистему и продукт. Всё это называется Meteor Cloud и объединяет хостинг, пакетный менеджер, систему мониторинга и сам фреймворк.
Deno — рантайм JS и TS от создателя Node.js Райана Дала — обновился до версии 1.7. В прошлой версии добавилась возможность сборки отдельных бинарников. В этой добавили возможность собирать их для разных платформ, дополнительно итоговый размер уменьшился в среднем на 45-50% при использовании флага --lite. Также был добавлен новый нестабильный resolveDns API.
После security-обновления появилась очередная версия Laravel. В патче 8.23.0 появился метод sole() для QueryBuilder. Этот метод похож на аналогичный метод get() из Django. Суть в том, что если по запросу не будет найдено записей, метод вернёт объект исключения. Кроме того, в методах throw_if() и throw_unless() вторым аргументом теперь можно передавать сообщение вместе с исключением.
Также на этой неделе вышла версия VirtualBox 6.1.18. В ней исправили несколько регрессий и улучшили стабильность.
Другие новости
Вышел JavaScript Rising Stars за 2020 год. Это проект, который по количеству звёзд на GitHub формирует топ проектов и выявляет самые крутые репозитории. Самыми популярными проектами 2020 года стали: Deno, Vue и React, Playwright и всеми любимый VSCode. Это первая пятерка, также на ресурсе можно посмотреть лучшие проекты по категориям. Например, фронтенд- и бэкенд-фреймворки, лучшие обучающие ресурсы, инструменты и другие категории. Определённо заслуживает внимания, можно увидеть тренды или найти для себя что-нибудь новое.
Компания RedHat объявила о расширении программы RedHat Developer. Эта программа позволяет бесплатно пользоваться Red Hat Enterprise Linux одному разработчику, после первого февраля количество человек увеличится до 16, несколько смягчатся и требования. Это произошло потому, что теперь сборки CentOS не отстают, а опережают сборки Red Hat Enterprise Linux. То есть сборки CentOS будут менее стабильными, и в них будут обкатываться новые фичи для RHEL. Компания рассчитывает и на то, что комьюнити будет больше участвовать в развитии этих операционных систем.