Node.js Digest #11: Node.js 15 років, TypeScript 5.5, шантажисти з Cloudflare, щури в NPM

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

Привіт, спільното! На звʼязку Олександр Зіневич та новий випуск дайджесту з новинами про Node.js і не тільки.

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

🔹 Typescript 5.5 RC — чи не найбільше оновлення до TypeScript за останні роки. Ознайомтесь, щоб морально підготуватись та закласти час для оновлення 😉

🔹 Нові версії Node v20.14.0 (LTS) та v18.20.3 (LTS) зарелізані. Цікавого тут мало, але все ж трішки фіксів підвезли.

🔹 Hono v4.4 отримав багато оновлень. У цій версії додали підтримку JSR для Deno, хелпер для полегшення доступу до інформації про зʼєднання, а також мідлвер для таймаутів.

🔹 Turborepo v2.0 — в новій версії додали набагато зручніший термінал, нові можливості з налаштування та багфікси. Реліз великий та цікавий для всіх, хто користувався попередніми версіями.

🔹 Мінорні апдейти до Prisma v5.15.0, pnpm v9.2.0.

Node.js 15 років 🎉

У травні Node.js відсвяткував своє 15-річчя 👏 В офіційному акаунті на платформі X можете привітати (хоч і з запізненням) нашу улюблену технологію.

За цих 15 років Node.js пройшов шлях від маленького проєкту, який не дуже зрозуміло де мав би бути застосований, до найпопулярнішого середовища виконання JavaScript на сервері та однієї з найпопулярніших платформ для розробки серверної частини вебзастосунків (і не тільки).

Проте останнім часом зʼявились альтернативні джерела виконання JavaScript, такі як Deno, Bun тощо. Кожне нове середовище озвучує ті чи інші проблеми, які присутні у Node.js, і як саме їхнє рішення покращить життя розробників та спонукатиме до міграції з Node.js. А тому дехто порушує питання актуальності Node.js і чи не є це технологією, яка скоро почне помирати, особливо враховуючи довгу історію та наявність альтернатив?

На це питання спробував відповісти Matteo Collina й у своєму блозі розповів про те, що відбувалось із Node.js за ці 15 років та що відбувається зараз. Якщо коротко, то Node.js живіший усіх живих, і ось на цьому графіку можете побачити, як з року в рік кількість завантажень росте, а з ними і кількість того, де використовується Node.js:

Matteo Collina також трішки розповів про те, як у Node TSC (Technical Steering Comitee) підходять до безпекової складової платформ, і як робота над безпекою фінансується грантовими програмами (не забувайте, що більшість головних контриб’юторів ще мають окремі фултайм-роботи, а Node.js — це щось на зразок волонтерства). Крім безпеки, за останній час в Node.js завезли fetch, ESM, AsynLocalStorage, систему доступів, ранер тестів тощо.

Словом, платформа жива, вітаємо з днем народження та бажаємо стрімкого розвитку і щоб відсвяткували 30 років 🥳

ESLint сказав так?

Схоже, що у недалекому майбутньому настане той день, коли ESLint буде підтримувати eslint.config.ts. Про це свідчить відповідний RFC, зареєстрований у Github репозиторії ESLint і те, що серед TSC, схоже, дійшли консенсусу. Ще 5 років тому основні контриб’ютори ESLint не могли дійти згоди стосовно цього і відкинули схожу пропозицію, проте зараз, у зв’язку з ростом популярності TypeScript та розвитком відповідної екосистеми, вже було важко не приймати цього рішення.

Cloudflare — шантажисти

Ця історія не зовсім стосується саме Node.js, а скорше ще одна страшилка про Cloud-сервіси і, зокрема, Cloudflare. Cloudflare ще ті шантажисти, як виявилось 😏

Якщо їм необхідно перевести ваш акаунт на інший рівень підписки, зазвичай дорожчий, то будьте готові, що вони знайдуть спосіб як змусити вас це зробити, або зовсім призупинити роботу вашого акаунту.

У історії вище одного прекрасного дня сейли з Cloudflare почали контактувати автора листами про те, що в налаштуваннях акаунту є якась серйозна технічна несправність, а тому необхідний мітинг. На мітингу ж зʼясувалось, що несправності нема, а є лише пропозиція нового тарифного плану, який в рази дорожчий за поточний і вимагає проплати на рік вперед. Чим більше автори відмовлялись від цієї пропозиції, тим жорсткішими були представники Cloudflare і в якийсь момент перейшли до відвертого шантажу з вимогою оплати протягом 24 годин. Коли цього не сталось, то надання послуг було просто припинене.

Ситуація страшна і добре, що команда змогла швидко перенести все на інший сервіс. Тому будьте обачні з Cloudflare і якщо приходить лист про якусь проблему з вашим акаунтом, то готуйтесь переїжджати на інший хостинг.

ChatGPT не такий вже й розумний

Багато хто з читачів активно користується такими інструментами як ChatGPT, або Copilot. Я, наприклад, використовую ChatGPT для автоматизації якихось рутинних процесів, аби просто швидше робити деякі задачі.

Так, так... я активно долучаюсь до того Скайнету)))

Якими б зручними не були ці інструменти, зараз, коли кількість користувачів величезна, можна якось аналізувати якість тих відповідей, які вони нам дають. Мою увагу привернуло ось це обговорення, де власне спільнота обговорює дослідження наскільки ChatGPT дає краще відповіді, ніж StackOverflow. Тексту там багато, але якщо коротко, то дослідження показує, що у більш ніж 50% випадків ChatGPT дає гірші відповіді, ніж StackOverflow. Звісно, це поки що, і колись ця статистика обернеться зовсім в інший бік, але наразі перевіряйте те, що вам каже ChatGPT.

JavaScript крутий, чи ні?

Багато років тому, коли я тільки ввійшов в ІТ, JavaScript завжди був в зоні критики за те, що це така трішки недомова. Пройшов час, зараз JavaScript одна з найпопулярніших мов для розробки, але ця критика зберігається. На платформі X батько JavaScript сам дав відповідь і описав, що ж він думає про JavaScript. Як завжди, все не так чорно-біло. Власне із самою відповіддю та коментарями можете ознайомитись тут.

Щури атакують

У своєму блозі команда Phylum поділилась свіжою небезпечною знахідкою в npm. Власне npm-пакет, який виконує RAT (remote access trojan), запускаючи окремі файли і процеси, що дозволяють слухати команди ззовні. Як завжди, слідкуйте за пакетами, які встановлюєте, бо npm переповнений шкідливим кодом.

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

🔹 Marco Mauro розповідає про те як покращив свою продуктивність і за допомогою Node.js та ChatGPT генерує короткий підсумок із будь-якої статті.

🔹 Редирект з HTTP до HTTPS може принести більше шкоди, ніж користі. Чому? Відповідь у цьому пості.

🔹 Cloudflare збільшує свою присутність і додає регіональні сервіси.

🔹 Ще не користувались нативним тест-раннером у Node.js? Тут можете почитати невеличкий гайд про те, як він працює.

🔹 У Snowflake величезні проблеми, декілька великих клієнтів, що використовують цю платформу, зазнали значного витоку даних. Поки незрозуміло хто винний, але історія цікава.

🔹 Зараз є купа назв для різних ролей на проєктах та в компаніях. Інколи вже важко розібрати хто є хто і за що відповідає. Darren Evans та Steve McGhee руйнують міфи і тим самим розповідають, що ж таке цей платформ інжиніринг.

🔹 Ще не чули за Promise.withResolvers() ? Сам час познайомитись 🙂

🔹 Трішки успішних кейсів використання MongoDB.

🔹 А тут трішки про те, які речі варто врахувати і чому важливо відразу закладати правильний дизайн структури документів при роботі з MongoDB для роботи з мільйонами записів у продакшині. Для когось це банальщина, а кому буде корисним освіжити чи вивчити.

🔹 Команда Socket підсумувала, куди буде рухатись Javascript і які нові фічі можна очікувати у майбутньому на основі Ecma T39, що недавно відбувся у Фінляндії.

🔹 Чи задумувались ви колись про те, як працюють AWS Lambda всередині? Як вони запускаються, як виконується код, яке віртуальне середовище використовується? Bytebytego агрегували різні доповіді на тему AWS, AWS Lambda, Serveless тощо, і спробували дати відповіді на всі ці питання вище.

🔹 Розповідь про те, як пов’язані memory leak та setTimeout() в Node.js-застосунках.

🔹 Harisson Broadbent розповідає ще одну страшилку про великий чек від клауд провайдера, цього разу від Netlify.

🔹 Короткий гайд як можна використовувати BullMq в Node.js.

🔹 Команда Nearform у своєму блозі має різні статі про Node.js. Тут можна трішки почитати про новий Http парсер Milo, а тут про роботу з пам’яттю у Javascript.

🔹 Liran Tal ділиться своїми думками про основні новинки Node.js як середовища, про які ви могли ще не знати.

🔹 Matt Bessely розповідає про те, чому йому набрид GraphQL.

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

🔹 Ще трішки про конкурента npm від Deno — JSR:

🔹 Ще одна страшилка про хмарні сервіси та Serverless підхід від Fireship:

🔹 Takuya Matsuyama запрошує вчити фреймворк Hono разом з ним:

Learn with me: Hono JS (How I take tech notes)

🔹 Огляд, як багато хто каже, одного з найбільших оновлень у Typescript за останні роки від Theo Browne:

🔹 У час, коли Node.js має таких конкурентів як Deno і Bun, не завжди зрозуміло, чи вартує їх використовувати? Maximilian Schwarzmüller пробує дати відповідь на це запитання:

🔹 Трішки про System Design у новому відео від ByteByteGo. Якщо ви вже працювали з Data Pipelines, то у цьому відео мало що для вас буде новим. Що це таке, для чого, основний інструментарій — це те, що розкривають у короткому відео нижче:

🔹 Послухати тих, хто працює на ААА продуктових компаніях завжди цікаво:

🔹 Вийшли записи з JSWorld Conference. Там багато всякого по фронтенду, але є доповіді, які можуть бути цікавими і для тих, хто користується Javascript на сервері. Мою увагу привернули, наприклад, ці відео:

Сервіс місяця

Цього разу сервіс, а не бібліотека. Не міг не поділитись своєю знахідкою сервісу, який може оживити звиклі для нас Github Gists — val town. За допомогою цієї штуки ви можете робити і крон джоби, і слати імейли, і навіть створити API. Навіть рейтингова табличка з трендовими val є. Виглядає круто, хоч для мене і трохи не зрозуміло, де саме я б міг таке використати 🙂

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

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

Вітаю!

Крутий дайджест, якось раніше його пропускав.

Дякую, продовжуйте, будь ласка.

Дякую, звісно, очікуйте новий дайджест у Липні)

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