Сперва пара объявлений. Мы снова переходим на график с одним эпизодом новостей в неделю, по пятницам. В таком режиме новости будут выходить до Нового Года, а дальше будет видно. Второе объявление касается разных платформ. Мы запустили отдельный YouTube-канал для подкастов, а совсем скоро вернем подкасты на Spotify. Слушайте нас на любой удобной платформе.
Интересные публикации
Дженерики... Как много в этом слове — для кого-то боли, а для кого-то упрощения жизни в разработке. Сергей Вахрамов написал статью о том, как подружиться с дженериками, или обобщенными типами в TypeScript, как они могут упростить вашу жизнь и как их корректно использовать. Описаны, наверное, все популярные кейсы: типизация методов и классов, тайпгарды и другие типовые задачи, которые решаются при помощи дженериков. Хорошая статья, чтобы один раз разобраться и запомнить навсегда. Также в конце вы найдете ссылки на дополнительные материалы.
Мой коллега Миша Медведев работает над циклом статей, который называется «Сравнение систем типов TypeScript, ReasonML и PureScript». Планируется 3 статьи в серии, первая посвящена системам типов и выводу типов. Цель — не выявить однозначного фаворита, это, скорее, обзорная исследовательская работа. Первая часть уже доступна в нашем блоге и на dev.to. Так что если вас интересуют типы и хочется расширить свой кругозор — добро пожаловать и ждите продолжений, которые мы обязательно анонсируем.
Дженнифер Фу (Jennifer Fu) на Medium опубликовала статью о нескольких новых фичах ES2022. Речь идет о приватных полях и методах классов, а также о статических блоках инициализации. Несколько раз в новостях и в других статьях о новой версии стандарта JS вы уже могли с ними сталкиваться. Дженнифер подробно разбирает каждую фичу и приводит примеры кейсов их применения.
Помимо новой версии стандарта JS на слуху сейчас у всех язык Rust. Станет ли Rust будущим тулинга экосистемы JavaScript? Всё больше и больше продуктов и библиотек так или иначе его используют или вовсе на него переходят, как, например, Rome. На эту тему рассуждает Ли Робинсон (Lee Robinson). Он делает обзор библиотек и проектов, которые используют Rust или написаны на нем, и рассказывает о плюсах: производительности, коммьюнити и работе с WebAssembly. После обзора вам, возможно, захочется познакомиться с языком или, как минимум, со списком проектов, которые его используют.
Следующие две статьи — от Игоря Агапова, который продолжает радовать нас обучающими материалами на Хабре. Первая из них — подробный гайд по Next.js. Это первая итерация, которая хорошо подойдет тем, кому больше заходит текстовый формат обучающих материалов. Пока что в гайде есть раздел об основных возможностях, маршрутизации, аутентификации и подготовке к продакшену. Вторая статья погрузит вас в тонкости работы requestAnimationFrame и requestIdleCallback. На простом примере Игорь показывает, в чем заключается разница между ними, объясняет, как они работают и чем полезны. Получилось доступно и компактно.
Робин Вирух (Robin Wieruch) в своем блоге написал гайд по работе с новой шестой мажорной версией ReactRouter. Он создает простое React-приложение, на примере которого показывает основные возможности роутера с учетом специфики новой версии.
Брамус Ван Дамме (Bramus Van Damme) обращает внимание на дополнения к размерам вьюпортов — это маленький, большой и динамический вьюпорты. Они добавляют префиксами текущие единицы измерения и помогают корректно отображать контент на мобильных устройствах. В статье Брамус делает лаконичный разбор, приводит примеры и объясняет, для чего нужно это дополнение к существующим единицам измерения.
Кристиан Хайльман (Christian Heilmann) в своем блоге раскрыл кучу секретов DevTools. Он, конечно, таким образом раскручивает Edge, VSCode и работу в экосистеме Microsoft, но тем не менее. Кристиан показывает чудеса логирования и трассировки в консоли, разные способы отображения информации, как пользоваться дебаггером VSCode и другие фичи. Это расшифровка доклада, доступна и запись на YouTube.
Следующая статья касается уже конкретно Chrome DevTools. Степан Зубашев на Хабре делится своим опытом и хитростями отладки приложений. Логирование и использование брейкпоинтов, отладка всплывающих окон, работа с запросами и Race Condition, и это еще не все. Получилось довольно интересно, обязательно загляните.
Завершит рубрику коллекция Node.js-библиотек от Стеллы Себастьян (Stella Sebastian). Некоторые из них сейчас уже не так популярны и реже используются, но посмотрите, возможно, найдете что-то полезное для себя.
Новости релизов
Вышел Chrome 96. Теперь Chrome умеет кешировать страницы для перехода по ним кнопками вперед и назад. Забавно, но Chrome реализовал эту оптимизацию последним, теперь она есть во всех браузерах. В инструментах разработчика содержимое запроса теперь отображается в новой вкладке «Payload», а консоль позволяет скрывать ошибки CORS. Кроме того, в тестовом режиме была добавлена фича CSS Overview. Также были представлены улучшения для PWA-приложений и расширена поддержка WebAssembly. Больше подробностей — в видеообзорах Пита Ле Пейджа и Джеселин Ин.
Состоялся релиз TypeScript 4.5. Был представлен новый класс Awaited для типизации Promise.all и облегчения вывода типов. Типы теперь можно обновлять отдельно от компилятора, а строковые шаблонные типы можно использовать в объединениях как дискриминанты. Добавили и обещанную оптимизацию хвостовой рекурсии. К сожалению, в этой версии не была добавлена поддержка ES-модулей, будем ждать.
Как я уже упоминал выше, вышла шестая мажорная версия ReactRouter. Новая версия была практически с нуля переписана на хуках, а размер библиотеки в бандле уменьшился на 50%. Были переработаны вложенные пути, относительные пути и ссылки. В общем, можно посмотреть. Возможно, новая версия привлечет обратно какое-то количество старых пользователей.
Также на этой неделе отмечу релизы Cypress 9.0.0 и фреймворка Laravel 8.70.
Другие новости
Ещё одна хорошая новость для Deno. Slack начала разработку нового API и платформы для разработки на базе Deno. Это будет коллаборация и совместная разработка. Можно сказать, это первая крупная компания, которая делает продукт на Deno. Уже есть бета платформы, можно подать заявку на участие в бета-тестировании и попробовать её на ранних стадиях. Довольно большой шаг для Deno, если вы не обращали внимание на этот рантайм, то, вполне возможно, время пришло.
Небольшая новость от React. React 18 был переведен в статус беты. Пока большей части разработчиков об этом сильно думать не надо, но следить за обновлением статуса стоит. Думаю, больше о React 18 мы услышим на ReactConf 2021. Напомню, что конференция пройдет онлайн 8 декабря, достаточно просто зарегистрироваться на странице мероприятия.