Node.js Digest #10: Node.js 22, Vercel and Edge, Stackoverflow вже не той, ESET проти Node.js

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Привіт, спільното! Новий місяць і новий традиційний дайджест, цього разу десятий — ювілейний 🎉

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

🔹 Node.js Next 10 Survey — 2024 — традиційне опитування спільноти, де ви можете поділитись своїм досвідом роботи з Node.js. Там всього лиш 21 питання, тому як будете мати кілька хвилин — обов’язково заповніть.

🔹 Bun v1.1.7 — нова версія одного з найбільш обговорюваних середовищ виконання JavaScript. Як і в попередніх версіях, оновлення містить багфікси, покращення сумісності з Node.js тощо.

🔹 Express v5.0 вже скоро зарелізять, а поки що можете ознайомитись з тим, що ще лишилось доробити.

🔹 TypeScript v5.5 beta — вже можна спробувати нову версію TypeScript, де нам обіцяють багато цікавих оновлень.

🔹 EdgeDB має новий вебсайт. Якщо ви ще не чули про цю хмарну базу даних, то саме час ознайомитись 😉

🔹 Традиційні вже для нашого дайджесту оновлення Deno v1.43. Про усі нововведення можете почитати тут, хоч і дрібні, але їх там багатенько.

Node.js 22

У квітні вийшло чергове оновлення Node.js v22 і, хоч цього разу воно не є якимось дуже великим, але містить низку дійсно важливих оновлень, про які хотілось би поговорити:

  • Перше і дуже важливе — це оновлення до V8. Тут нам підвезли підтримку Set methods та iterators helpers і навіть оновлення до JIT-компілятора.
  • У 22 версії зробили ще один крок до того, щоб require(esm) був увімкненим відразу з коробки, а я з нетерпінням чекаю, коли це все ж таки станеться 🙂.
  • Експериментальна команда node --run [script], що є значно швидшою за npm run smth.
  • Node --watch тепер стабільний, так само як і імплементація WebSocket.

Більше деталей можна переглянути тут.

Node.js collaboration summit

Контрибутори та учасники спільноти регулярно збираються на свого роду неформальних конференціях, де обговорюють майбутнє платформи, діляться думками ідеями та брейнстормлять, куди рухатись далі. У офіційному блозі Node.js можна ознайомитись із деталями того, про що говорили на саміті. Серед основних тем:

  • нові фічі у CLI, наприклад, нова команда для швидкого запуску файлового сервера, а також нова команда npm run;
  • звісно, зачепили тему менеджерів пакетів та Corepack;
  • поговорили про EcmaScript-модулі та над чим ще потрібно працювати у Node.js Core;
  • також обговорили так звану Node.js Ambassadors Program, що є, по суті, ініціативу з популяризації та навчанню Node.js.

З усіма деталями цих та інших тем зі звіту, ви можете ознайомитись безпосередньо у Github Node.js у відповідних пулл-реквестах.

Як Vercel відмовились від Edge

Lee Robinson розповів, як вони відмовились, а потім знову полюбили Node.js. Перш за все, з його публікації не відразу зрозуміло, про який же Edge йде мова, особливо для тих, хто не працював із Vercel. Платформа Vercel надає купу сервісів та інструментів із приставкою Edge, зокрема, у них є такий собі аналог AWS Lambda — Vercel Functions.

Використовуючи цей сервіс у вас також є можливість вибирати середовище виконання, як-от Go, Python, Ruby, Node.js, Edge. Власне варіант Edge мав би бути гарним вибором, якщо вам необхідно, аби код виконувався якнайближче до клієнта, але при цьому критично важливий і класний перфоманс, а також розумне використання коштів. Звучить логічно, чи не так?

Але виявляється не зовсім, бо старт, а в окремих випадках і вартість роботи Vercel Functions з Node.js (з 20 версії) є кращими, ніж зі спеціалізованим середовищем виконання Edge.

Vercel залишає за користувачами право вибирати, яке середовище використати саме у вашому застосунку, проте урок простий — довіряй, але інколи й перевіряй 🙂

ESET vs Node.js

Ті з читачів, хто користується антивірусом ESET на Windows, могли нещодавно відчути на собі, як одне з останніх оновлень антивірусу, по суті, зробило неможливою комунікацію з сервісами, написаними на Node.js, що використовують HTTPS. Все через сканер HTTPS-трафіку для Node.js.

У багатьох користувачів відключення саме цієї функції давало можливість працювати далі. Детальніше про саму проблему, а також як розвивалась дискусія, можете побачити ось тут. Трішки кумедним є цей пост адміністратора:

Коли ж купа користувачів почали описувати свої проблеми на великих об’ємах як серверів, так і користувачів, а тим самим великі збитки, то про таку «фічу» вже ніхто не згадував, а попросили девелоперів все пофіксити. Станом на зараз відповідний фікс мав би дістатись своїх користувачів.

Bun збирається захопити світ

Jarred Sumner у своєму акаунті на платформі X поділився планами про основні пріоритети Bun на найближчий час. Традиційно основна мета — бути кращим і популярнішим середовищем виконання, ніж Node.js. Станом на зараз вона не дуже досяжна через молодість Bun.

Але Jarred окреслив, що найближчим часом їхній основний фокус буде на розвʼязанні проблем, які виникають у компаній, що вже використовують Bun у продакшені, або у компаній, які з якихось причин заблоковані й не можуть використовувати Bun через певні проблеми середовища. Можемо лише побажати успіхів команді у цій довгій та нелегкій боротьбі.

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

🔹Давно в нас не було страшилок про хмарні сервіси та величезні рахунки за їхнє використання (або не використання 🙂), тому ось трішки нових.

🔹Не зовсім про Node.js, але ще одна страшилка, тепер вже з безпекового сегмента про те, як одна єдина вразливість може призвести до витоку інформації про 125 мільйонів користувачів з 900 сайтів.

🔹Впевнений, що більшість читачів проти власних велосипедів, але от команда hivekit ділиться своїм досвідом, де власні велосипеди вже не такі й погані.

🔹А ви теж, як і я інколи, дивувались, хто ж використовує Deno? Якщо так, то ось світ побачив новий офіційний кейс компанії Slack. Деталей там мало, але вартує ознайомитись.

🔹Цікава стаття про те, як можна генерувати коротке ревʼю з подкасту. Тут і трішки LLM-моделей, і трішки Node.js та всякого іншого.

🔹Ryan Dahl вирішив пояснити спільноті, як у команді Deno прийшли до JSR і в чому переваги.

🔹Якщо ви пишете, або плануєте писати свої власні ESM чи CJS-модулі, то ця стаття саме для вас. Liran Tal ділиться своїми думками про те, що важливо знати на цю тему у 2024 році.

🔹Всі ми знаємо що таке конференція, але чи чули ви термін неконференція (unconference)? Jojee Choung розповідає про те, чого навчився, організовуючи останній Node.js collaboration summit, який проходив саме у форматі неконференції.

🔹У JavaScript планують завести Signals. Тут трішки детальніше про саму пропозицію.

🔹Профайлінг Node.js у Google Chrome по новому, через оновлення браузера. Вартує ознайомитись.

🔹Michael Dawson розповідає про те, як запускати Node.js в Edge-пристроях: частина 1 та частина 2.

🔹Трішки про те, чому вам більше не потрібен пакет dotenv.

🔹Liran Tal розповідає, як не потрібно робити аутентифікацію на Express.

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

🔹Якщо ще не бачили, то обовʼязково перегляньте, як має проходити співбесіда Javascript-розробника 🤡

🔹Про те, що мікросервісна архітектура — це не панацея, вже знають усі, але в там де це доцільно, треба будувати її правильно. У цьому відео трішки про найпопулярніші архітектурні патерни.

🔹Matteo Collina розповідає про всі новинки Node.js v22.

🔹Stackoverflow вже не той і потрохи вмирає? У своєму відео Theo Browne розбирає, що зараз відбувається з улюбленим сайтом усіх розробників 🙂

🔹Let чи Const, що краще? На це питання спробував відповісти Ryan Florence у своїй нещодавній доповіді. Приготуйтесь, що ви будете згодні не з усім, але тому ж і буде цікаво подивитись.

🔹Ще одне відео від Matteo Collina — цього разу майстерклас по роботі зі Streams.

🔹Event-Driven чи Request/Reponse-архітектура, коли та що краще? Відповідає Adam Bellemare.

🔹Github Copilot отримав капітанське звання.

🔹Локальний AWS, або як можна ефективно будувати AWS-heavy-застосунки локально, використовуючи LocalStack.

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

Якщо вам треба написати тест на функції, що безпосередньо роблять HTTP-запит, але ізольовано, то бібліотека nock — це саме те, що треба. Вона переписує нативні API для запитів і дозволяє ефективно протестувати місця, які мають завʼязку на інші сервіси.

На цьому все. Пишіть коментарі, діліться дайджестом з друзями та ставте запитання, якщо маєте. До зустрічі у нових випусках! 😎

👍ПодобаєтьсяСподобалось5
До обраногоВ обраному1
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

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