Всем привет, это «Новости 512» от CSSSR. Первый выпуск после новогоднего получился немного коротким, но нам есть на что посмотреть. В этом выпуске: релиз Chrome 109, релизы Node.js и результаты опроса State of JS 2022. Кроме того, в выпуске будут материалы по TypeScript, про особенности типов данных в JS, создание виджета для Figma и аутентификацию.
Перед началом выпуска я немного поделюсь планами на 2023 год. В январе я попрошу вас заполнить опрос по новостям: это поможет сделать новости лучше, а я буду вам бесконечно благодарен.
Идея с приглашёнными гостями в целом оказалась неплохой, и в течение года я постараюсь чаще приглашать ребят рассказывать просто о сложных штуках.
Ещё я хочу сказать, что мне можно написать в телегу напрямую и предложить какой-то инфоповод или поделиться своим мнением о новостях — я буду рад пообщаться. В описании выпуска есть ссылки на мои контакты.
Интересные публикации
Аутентификация и авторизация покрыты завесой тайны, а разработчики всего мира реализуют эти процессы снова и снова. Первый материал как раз об аутентификации. Эрик Бюрел (Eric Burel) написал подробную статью о том, как она работает и с чем её едят. Он рассматривает два частых паттерна: сессионную аутентификацию и JWT. На примере аналогии с банком Эрик рассказывает, как работают обе схемы, какие у них есть особенности, в каких случаях их лучше применять. Статья нравится мне тем, что в ней много подробностей: автор касается и кук, и заголовков запросов, и разных способов хранения токенов, и CORS. В конце статьи много ссылок на дополнительные материалы. Получилось подробненько. Аналогия с банком, может быть, не совсем удачная, но в целом лично мне понравилось, рекомендую.
Достаточно часто в выпусках мелькают материалы по TypeScript и о том, как лучше к самому TS подступиться. Это как раз один из них. Игорь Агапов перевёл статью Йоханеса Кетмана (Johannes Kettmann) о необходимом минимуме TypeScript для работы в связке с React. Здесь будет и про совсем базовые конструкции, и про более продвинутые. Ценно то, что есть примеры с React, добавлением сторонних библиотек в проект и другие. Статей про начало работы с TS в React довольно много, но, возможно, эта зайдёт больше и поможет понять TS в React ещё лучше.
Никакой код не застрахован от ошибок, в том числе и на TypeScript. Следующая статья тоже по TS, но касается она конкретно обработки ошибок. Колби Сиск (Kolby Sisk) на Medium написал именно об этом. Сначала он бегло проходится по типам ошибок в JavaScript, а потом рассказывает, как реализовать кастомные классы ошибок в TypeScript, генерировать их и корректно обрабатывать. Небольшая, но содержательная заметка.
Типы данных — сами по себе боль в любом языке, а в JavaScript и подавно. Эта статья как раз о них. Как вы помните, в JS восемь встроенных типов данных — они могут сравниваться, приводиться к другим типам явно или неявно. В материале разбираются все эти пункты с примерами, а также некоторые продвинутые нюансы работы с типами и задачи с собеседований. Очень даже неплохая шпаргалка, по которой можно всё разобрать и закрепить.
Алексей Сушков на Хабре поделился своим опытом разработки виджетов для Figma. Он рассказал о том, как создал 3 виджета: один — для создания чеклистов, другой — для ведения истории изменений, а третий — для моделирования разных сущностей. В статье он делится процессом дизайна и разработки, а также продвижения виджетов. В итоге плагины собрали 23 000 установок. В статье вы также найдёте ссылки на дополнительные материалы по теме.
В конце рубрики я хочу обратить ваше внимание на книгу «PostgreSQL 15 изнутри». Новая редакция доступна бесплатно в формате PDF. В ней нет готовых рецептов или инструкций по работе с PostgreSQL — это именно про внутреннее устройство СУБД для тех, кто хочет понимать, как она работает изнутри и чем отличается от других.
Ещё одно — перевод статьи Андрея Ситника про OKLCH-цвета в CSS. Если пропустили или не дружите с английским — добро пожаловать по ссылке.
Новости релизов
Вышел Chrome 109. В новой версии вернули поддержку языка MathML Core, который позволяет добавлять в HTML математические формулы здорового человека. Был представлен ряд доработок CSS для веб-типографики и новая единица измерения lh
для указания высоты в строках: одна единица равна значению line-height
элемента. На платформе Android теперь доступен Origin Private File System API. DevTools тоже не обошёлся без дополнений. Вкладка Performance теперь умеет показывать неминифицированные имена функций и их код, если есть source map. Больше подробностей — в обзорах по новым Chrome и DevTools от Google.
Вышли две версии Node.js. В версии 18.13.0 (LTS) была добавлена поддержка внешних JS-надстроек, объект File (часть FileAPI) и поддержка моков функций в тест-раннере Node.js. Помимо этого доступно небольшое обновление текущей ветки за номером 19.4.0.
Также отмечу релиз веб-сервера lighttpd 1.4.68.
Другие новости
Доступны результаты опроса State of JS 2022. В этом году в опросе блистает фронтенд-тул Vite. Он собрал больше всего наград: за наибольший процент преданных пользователей, за наибольший интерес пользователей и как самая внедряемая технология. Можно поаплодировать. Что касается самой внедряемой или применяемой новой фичи JavaScript, то это top-level await, что в целом неудивительно. При этом Nullish Coalescing пользовались почти все опрошенные. По фреймворкам: ничего нового, наша четвёрка выглядит так же: React, Angular, Vue, Svelte. Могу отметить, что интерес к Svelte немного растёт. В рендеринг-фреймворках лидируют Next.js и Gatsby, при этом к Gatsby возвращается всё меньше разработчиков. В области тестирования набирают популярность относительно новые продукты. Доля использования Jest всё ещё несравнимо высокая, но Vitest, Testing Library и Playwright набирают свою аудиторию. Electron, React Native и Ionic уверенно удерживают первые три места в рейтинге технологий для создания мобильных приложений. В области сборщиков, как я уже говорил, лидирует Vite, за ним следом esbuild и SWC, при этом за последние 2 года доля использования Webpack ощутимо упала — более чем на 10%. Это, конечно, не все итоги опроса. С подробными результатами можно познакомиться по ссылке в описании выпуска.
Перед Новым Годом я уже говорил про взломы крупных компаний. Череда взломов продолжается. Атаке подверглись Slack и CircleCI. Slack утверждает, что пользователям ничего не угрожает, а CircleCI пока никак не комментирует ситуацию. Есть теория, что серия недавних взломов как-то связана, но это только слухи. Я продолжу следить за ситуацией.