Node.js Digest #1: Популярність Node.js, Edge Functions набирають обертів, Typescript 5.2 вже у беті

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

Усім привіт, мене звати Олександр Зіневич, я працюю Engineering Director (Node.js, Ruby) в компанії Avenga. Пропоную вашій увазі перший дайджест з новинами, цікавим та корисним контентом про Node.js.

Ні місяця без оновлень

У червні в останній версії Node.js 20 було значне оновлення, яке крім всяких мінорних фіксів містило також оновлення для libuv, що покращує перфоманс на linux системах. Детальніше почитати про це можна тут.

Крім цього, зарелізили безпекові оновлення для LTS та Current версій Node.js(16, 18, 20). В більшості там все стосується OpenSSL та експериментального функціоналу. Детальніше про те, що виправляють ці оновлення можна почитати у відповідних реліз замітках.

Все, що стосується безпеки та перформансу завжди вартує уваги і своєчасного оновлення. Тому не забувайте вчасно оновлюватись.

Коротко про головне

🔹 Node.js 19 все. З 1 червня Node.js v19 дійшла до EOL, відповідно, оновлення до цієї версії більше не буде.
🔹 Ecma international погодили ECMAScript 2023 специфікацію.
🔹 Офіційний реліз Typescript 5.1. Покращення для роботи з JSX, краща робота з типами у гетера і сетерах та інші оновлення і фікси у цій версії.
🔹 Тим часом Typescript 5.2 beta вже доступна. Дуже цікавим є управління ресурсами через using, а що входить крім цього, можете почитати у блозі Microsoft.

Традиційне опитування від StackOverflow

Stackoverflow опублікували результати свого традиційного опитування. Для Node.js ці результати, я б сказав, чудові. Технологія посіла перше місце серед інструментів для веброзробки, обігнавши навіть React.js.

А ще збільшилась кількість респондентів, що хочуть використовувати наступного року Node.js більше ніж jQuery 🙂

З усіма результатами можете ознайомитись тут.

Новини Nest.js

Цього місяця вийшла нова версія Nest.js v10. Традиційно сюди ввійшло багато виправлень та покращень.

Крім цього, додали підтримку компілятора SWC, який написаний на Rust і мав би прискорити всі процеси, пов’язані з розробкою. Тепер можна переписувати модулі у тестах і підписуватись на Redis повідомлення за патерном.

Тут можна прочитати про те, як перейти з 9 на 10 версію, але розробники заявляють, що breaking changes там небагато, тож оновлення має проходити досить легко і гладко.

Вразливість у екосистемі npm

Колишній Staff Engineering Manager у Github виклав блог, у якому дуже детально висвітлив безпекову проблему, що присутня в екосистемі npm. Ця вразливість вже дістала назву «manifest confusion» і полягає у тому, що інформація про залежності, додаткові скрипти тощо у маніфесті та package.json зберігається окремо, ніколи не перевіряється на відповідність на стороні npm і, як наслідок, може відрізнятись.

Відповідно, в архіві з пакетом можуть бути додаткові приховані залежності та шкідливі скрипти, про існування яких розробник навіть не буде здогадуватись.

На момент написання дайджесту поки не зрозуміло як це все фіксити, але ознайомитись із деталями цієї вразливості можете тут.

А що там по Edge Functions

Edge Functions — це ще молода, але навіть зараз досить популярна технологія для вирішення окремих задач. Тому, щоб краще розуміти, «куди вітер дує», цікавим буде почитати результати опитування від команди Deno (чисті результати та аналіз результатів).

Зараз при роботі з Edge Functions є проблеми з дебагом і тестуванням, що типово для serverless середовища, проте вже частина респондентів повністю будувала свої застосунки, використовуючи Edge Functions через кращу швидкодію.

Щось подивитись

Ерік Вендель показав презентацію про те, як Node.js працює усередині. Готуйтесь до читання коду на С, але буде цікаво.

Не знаєте, яку ORM вибрати і яка найкраща? Це відео дасть вам відповідь на питання (спойлер: ні). Якщо серйозно, то коротке рев’ю на найпопулярніші ORM, яке точно буде корисним, якщо ви не впевнені у своєму виборі ORM для наступного проєкту.

Трішки про Worker threads і те, як можна досягнути багатопоточності у Node.js в дуже доступному форматі.

Звісно, хайп, що повʼязаний зі штучним інтелектом та ChatGPT, не обійшов стороною і Node.js. Рекомендую переглянути відео про те, як можна змусити ChatGPT викликати вашу функцію, написану на Node.js.

Щось почитати

Гарна візуалізація і розбір роботи Event Loop.

Розбір кейсів масштабування Node.js застосунку. Всі герої вигадані, збіги випадкові, проте відображають реальний досвід Нейта Андерсона.

Про роботу з новим Node.js test runner, який, до речі, вже став стабільним у 20 версії.

Бібліотека місяця

Цього місяця мою увагу привернула бібліотека traf. Команда розробників з компанії Lemonade, маючи кілька великих monorepo, зіштовхнулись із проблемою, що nx affected працює коректно далеко не завжди і вирішили це виправити, розробивши бібліотеку з відповідним фіксом.

По суті, вона робить те саме, визначає пакети, на які вплинула зміна у файлі, але робить це точніше, ніж nx з коробки. Ну і, звісно, є можливість її інтегрувати у nx для подальшого використання 🙂

👍ПодобаєтьсяСподобалось15
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Хороша стаття, хороша добірка матеріалів.

Гарна візуалізація і розбір роботи Event Loop.

мені по візуалізації і розумінні Event Loop допомог latentflip.com/loupe

Підписатись на коментарі