Новости 512 #194

В этом выпуске: новый проект русскоязычного коммьюнити Дока, бандлер Parcel 2.0, бета Nuxt.js 3, разбираемся в CORS, новый фреймворк Remix.

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

Выпуск начнется с Доки. По адресу doka.guide вы увидите прекрасную веб-документацию по HTML, CSS и JavaScript. Также есть раздел с инструментами для веб-разработки. Отличительная и самая важная черта Доки — это доступность и понятность информации, в ней всё описано просто и «человекочитаемо». Кто-то скажет: «Но есть же MDN, зачем это», но я считаю, такого ресурса на русском языке не хватало. Дока появилась благодаря команде энтузиастов и активистов российского веб-сообщества, в их числе: Вадим Макеев, Алена Батицкая, Саша Беспоясов, Ник Лопин, Игорь Камышев, Игорь Коровченко, Егор Левченко и другие. Отдельный привет Егору Огаркову, Алёне Дьячковской и Саше Баумгертнеру. Контрибьюторов, конечно, намного больше, и каждому из них я хочу сказать спасибо. Полтора года работы над проектом, между прочим. Получилось круто.

Немного на правах рекламы расскажу вам про наши новые стримы Callback Hell. Мы начали приглашать гостей и обсуждать с ними интересные темы. Первым стал Саша Беспоясов, с ним мы поговорили про чистую архитектуру на фронтенде. Следующий выпуск был на стыке дизайна и фронтенда, Вадик Матвеев и Юля Миоцен рассказали нам о дизайн-системах и о том, почему кодеру может быть полезно разбираться в дизайне, а дизайнеру — кодить. Также выходит аудиоверсия.

Джейк Арчибальд опубликовал в своем блоге статью о CORS, или Cross-origin resource sharing. CORS — достаточно сложная тема, но всё не так плохо, если как следует разобраться. Джейк рассказывает, почему CORS такой, какой он есть, как работают запросы, что такое preflight-запросы, упоминает работу с cookie и другие тонкости. Там же вы найдете ссылку на CORS-песочницу, в которой можно попробовать разные виды запросов с разными параметрами и разобраться в вопросе.

Что такое функции высшего порядка? Это функции, которые принимают другие функции как аргументы или возвращают функции. А подробнее об этом и практической пользе в своем блоге пишет Дмитрий Павлютин. Он рассказывает о преимуществах использования функций высшего порядка и приводит примеры. Коротко и ясно, отличная заметка.

Потоки данных — штука тонкая. С недавних пор большинство JavaScript-платформ (включая браузеры) хотя бы частично поддерживают создание, композицию и прием потоков данных Об этом рассказывает Олли Уильямс (Ollie Williams) в своей статье на css-tricks. Он затрагивает и работу потоков в Node.js, а также приводит несколько примеров.

Джек Джей (Jack J) на web.dev опубликовал материал о новом Sanitizer API, который призван обеспечить безопасное взаимодействие в DOM. В чём, собственно, опасность: через innerHTML можно внедрить скрипт и выполнить XSS-атаку. Смысл в том, что если HTML распарсить и удалить потенциально опасные элементы, манипуляция с DOM станет безопасной. Больше подробностей о принципе работы нового API и его применении читайте в оригинальной статье.

Следующий материал — о худших практиках в JavaScript по версии Фернандо Дольо (Fernando Doglio). Фернандо призывает не использовать var в 2021, всё-таки разобраться в разнице между обычными и стрелочными функциями, не баловаться с неявным приведением типов. Также он советует окончательно уяснить, как работают this и замыкания, а также как избежать утечек памяти. Советы дельные, о каждом подробнее можно прочитать в статье Фернандо на Medium.

Йони Голдберг (Yoni Goldberg) в своем блоге поделился подходом к написанию чистых и неизбыточных тестов с применением принципов BASIC. Это аббревиатура, которая шифрует принципы понятности, черного ящика, изолированности и ответственности за конкретную функциональность. Йони рассказывает о самих принципах и приводит примеры «плохих» текстов, которые превращает в «хорошие», пошагово применяя принципы BASIC.

Теперь немного практики и инструментов.

Игорь Агапов в блоге Timeweb на Хабре опубликовал статью о том, как написать на JavaScript приложение, записывающее звук. Вообще, большая часть из нас, наверное, привыкла использовать JS только на фронте. Хочу сказать, что попробовать нестандартное применение языка или другой язык для программиста — всегда полезно. Попробуйте поковыряться в приложении, займет немного времени, а принесет пользу более существенную, чем вы можете подумать.

Элемент для множественного выбора — как же много разработчиков сломали свои клавиатуры, пытаясь его реализовать. На помощь спешит Адам Аргайл в продолжении своей серии о реализации разных элементов управления. Он рассказывает о том, как элемент помогает фильтровать контент на странице, как можно работать с ним при помощи разных устройств ввода, включая сенсорные. Как и в других статьях серии, Адам реализует его, прикладывает к статье исходный код и готовое демо.

Закроет рубрику браузер Bonsai. На сайте проекта говорится, что браузер предназначен для быстрых ресерчей программистов во время работы. При помощи хоткея можно открыть маленькое окно со Stackoverflow рядом с редактором кода, удобно организовать вкладки и так далее. Как пишут на сайте, это «браузер, который помогает программисту мыслить ясно». Ещё не пробовал, но может быть, он поможет вам в работе.

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

Сборщик Parcel и раньше претендовал на заметное место среди других бандлеров, теперь он делает серьезную заявочку на победу. Вышел Parcel 2. Заметное преимущество Parcel — относительная простота настройки, популярные сценарии использования в нём есть из коробки, при этом он не уступает конкурентам ни в скорости, ни в надежности. Вторая же версия, видимо, может нанести апперкот: в ней улучшили производительность сборки, реализовали новую систему плагинов, три-шейкинг, код-сплиттинг, буст сборок библиотек и HMR. Была оптимизирована и работа dev-режима. Ряд проектов уже начал миграцию на Parcel. Если вы не пробовали поработать с ним — время, определенно, пришло.

Вышла бета-версия Nuxt.js 3. Не путайте с Next.js, Nuxt.js работает с Vue. Так вот, многие ждали третьей версии и, похоже, не зря. Новая версия в качестве сборщика использует Vite, работает с Vue 3 и предлагает много новых возможностей. Команда разработки напоминает, что проект пока в статусе беты, но приглашает попробовать и дать свой фидбек. Новая версия, между прочим, действительно выглядит многообещающе.

Ваш любимый линтер ESLint отметился релизом восьмой мажорной версии. В этом выпуске были представлены breaking changes, поэтому перед обновлением внимательно ознакомьтесь с гайдом по миграции. В восьмой версии поддерживаются новейшие фичи ES2022, были добавлены оптимизации и багфиксы, также была обновлена документация. С полным списком изменений можно ознакомиться на странице релиза.

Deno 1.15 — свежая версия рантайма от автора Node.js Райана Дала. В этом релизе версию V8 обновили до 9.5, продолжили расширять поддержку Web Crypto API и добавили флаг --watch для команды deno lint.

Рубрику закроет релиз V8 9.6. В этой версии была по умолчанию включена поддержка Reference Types в WebAssembly, фича уже поддерживается в Safari 15 и Firefox.

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

У Next.js появился серьезный конкурент — фреймворк Remix от создателей React Router. Разрабатывается он уже почти 2 года, и вы могли о нем слышать. Почему я говорю о нём только сейчас: он получил $3M посевных инвестиций и будет распространяться под лицензией MIT. Авторы заявляют, что фреймворк построен на базовых веб-технологиях, что он обладает лучшим в классе фронтенд-стеком, а также может не зависеть от вендора на сервере и работать на AWS, Google Cloud и даже на Vercel (которые, собственно, и сделали Next.js), а также других платформах. Скоро станет доступна версия 1.0, которую можно будет потрогать. Пока что Remix выглядит как проект, который, как минимум, стоит попробовать, что будет дальше — покажет время.

Год плавно подходит к концу, а это означает, что некоторое время в выпусках будет уделяться опросам и их результатам.

Для начала, State of CSS 2021. Опрос в самом разгаре, я очень рекомендую принять участие. В этом году в процессе прохождения опроса заодно можно проверить и свои знания в современном CSS.

Были опубликованы результаты опроса JetBrains «Экосистема разработки в 2021 году». Буду краток и озвучу основные итоги. JavaScript — самый популярный язык; многие хотят изучать TypeScript, и его популярность быстро растет; Python укрепляет свои позиции и получает более широкое распространение. Кстати, про Python, в рейтинге TIOBE он сейчас занимает первое место. Отмечу, что 71% респондентов разрабатывают бэкенд, стоит сделать поправку на это. С полными результатами опроса и графиками можно ознакомиться на странице опроса.

Пара новостей из мира open source.

Linux Foundation получила инвестиции в размере 10 миллионов долларов, которые планируется направить на информационную безопасность open source проектов через Фонд безопасности свободного ПО. Спонсорами стали крупнейшие компании. Инициатива была вызвана тем, что количество атак на ПО увеличилось в 6 раз за последний год, а 70% ПО составляет как раз open source.

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

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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