Node.js Digest #16: JavaScript vs Oracle, 10 років AWS Lambda, розробники-привиди, Prisma 6
Привіт, спільното! На зв’язку Олександр Зіневич, Engineering Director в Avenga. Зустрічайте останній цього року дайджест, де як завжди найцікавіше із світу серверного JavaScript та не тільки.
Коротко про головне
🔹 Node.js v22 доступний до використання на AWS Lambda, проте з певними обмеженнями. Наприклад, не весь експериментальний функціонал буде працювати, а також є певна специфіка по швидкодії, детальніше у блозі AWS. Це ж саме зробили й у Vercel.
🔹 Рік підходить до свого завершення, а тому традиційно стартує опитувальник State of JavaScript 2024. Сам його заповню і вас попрошу, бо хочу мати контент для наступних дайджестів і, сподіваюсь, ви теж 😅
🔹 Команда Node.js робить політику по PR перед релізом жорсткішою, щоб реліз проходив більш стабільно та керовано.
🔹 Для тих, хто женеться за новинками TypeScript, то відразу після прочитання дайджесту біжіть оновлюватись до версії 5.7.
🔹 Node.js традиційно викатили трохи нових версій, а саме v23.3.0 та v20.18.1.
🔹 Wasmer SDK тепер підтримує Node.js і Bun.
🔹 Команда Bun не спить, не дрімає, і регулярно публікує нові версії свого середовища виконання JavaScript. Цього разу версія v1.1.38 з усілякими мінорними фіксами та покращеннями.
🔹 Якби комусь потрібно було скомпілювати JavaScript у WebAssembly, то вийшов новий інструмент, який дозволяє це зробити — Jawsm.
🔹 Prisma 6: швидкодія, гнучкість, типізованість — цими та іншими гарними словами можна описати новий реліз Prisma.
AWS Lambda 10 років
А памʼятаєте світ, де не було Serverless-архітектури? Якщо такі ж старі, як і я, то гадаю, що так. Світ, у якому не було AWS Lambda функцій, а натомість завжди потрібно було розгортати та ефективно керувати власною інфраструктурою. Якщо памʼятаєте, це було приблизно 10 років тому, бо саме цього листопада AWS Lambda виповнюється рівно 10 років.
За цей час сервіс пройшов шлях від чогось на зразок стартапу усередині AWS до сервісу рівня Enterprise-клієнтів, який допомагає вирішувати задачі різного рівня складності клієнтам з усього світу. На офіційному блозі AWS опублікували невеличку статтю до ювілею сервісу AWS Lambda, життя якому дав саме Node.js, адже це була перша технологія, яку підтримував цей сервіс.
Станом на сьогодні сервіс не лише розвинувся і став надпопулярним, а й продовжує свій розвиток та стрімкий політ у майбутнє. Оскільки чим далі, тим більш важливим буде покривати інтеграцію між різноманітними сервісами AWS чи вирішувати усілякі інфраструктурні задачі без участі DevOps.
Тому давайте піднімемо келихи за іменинника та побажаємо і надалі залишатися в трендах та завжди підтримувати Node.js як одну з найпопулярніших технологій 😉
Звільнити JavaScript
А памʼятаєте в одному з попередніх дайджестів я вже писав, що почався рух, спрямований на те, щоб вивільнити торгову марку JavaScript з-під власності Oracle? Так от, нещодавно Ryahn Dahl вирішив трішки прискорити цей процес. Разом із командою Deno вони заповнили петицію до реєстратора торгових марок USPTO з проханням анулювати власність торгової марки JavaScript компанією Oracle.
Саме те, що JavaScript є торговою маркою компанії Oracle, багато конференцій та спільнот не можуть використовувати цю назву (приклад тут). Як описує Ryahn Dahl у своєму пості, з боку Oracle вже давно не було якоїсь відчутної допомоги у розвитку JavaScript екосистеми чи Node.js. Фактично вони не роблять нічого, що могло б хоч якось підпадати під розвиток тієї торгової марки, що є у їх власності. Натомість все розвивається лише за підтримки спільноти та інших незалежних компаній, а тому по закону це не може залишатися торговою маркою. До того ж, Oracle використав не зовсім достовірну інформацію для продовження власності у 2019 році, що також є приводом для анулювання.
Будемо спостерігати за розвитком подій та сподіваємось, що Oracle просто проігнорує цю петицію до п’ятого січня 2025 року. Тоді анулювання може пройти автоматично і, відповідно, досить мирно. Якщо ж ні, схоже, що Ryahn Dahl налаштований вступати у пряму боротьбу із гігантом як Oracle, щоб звільнити JavaScript.
Node.js Collaboration Summit
На початку листопада у Дубліні відбувся черговий Node.js Collaboration Summit відразу після NodeConf EU, відоси з якої чекаємо з нетерпінням. Короткий огляд того, що там відбувалось зробив Luke Karrys тут. А трішки детальніше на офіційному блозі Node.js — тут.
Обговорювали багато чого, зокрема:
- Увагу до коллабораторів, а саме покращення онбордингу нових коллабораторів, визнання досягнень та процес парної коллаборації (buddy system) для початківців.
- Результати опитування Next-10, з якими ви можете ознайомитись тут. Будуть далі в робочих групах опрацьовувати результати.
- Різні способи залучення інвестицій: Github Sponsors, Open Collective.
- Покращення документації та популяризацію ESM.
Це лише маленька частинка, деталі можете почитати за посиланням вище. Дуже тішить, що платформа активно розвивається і ставить перед собою стратегічні питання та цілі.
Nova
Скільки ви знаєте JavaScript-рушіїв? Всі чули про V8 чи про JavaScriptCore, а може хтось навіть і про SpiderMonkey чи відносно новий Hermes. Крім цих відомих є ще купа інших рушіїв, які або не такі популярні через відсутність підтримки великих корпорацій, або пропонують не ту швидкодію, якої потребує сучасний бізнес, тому їх я би упустив.
Проте у родині рушіїв JavaScript поповнення — Nova. Тут нам завезли і покращену роботу з даними, а саме використання специфічних векторів, і покращену роботу з памʼяттю та кешем, та й багато іншого, що є кращим, ніж у того ж V8. Більше можете почитати тут.
Чи злетить цей рушій і чи посяде якесь місце в трійці чи хоча б в п’ятірці найпопулярніших, покаже лише час.
Розробники-привиди
Впевнений, що це не стосується жодного спеціаліста з Node.js, але Stanford Research опублікував свою статистику про ефективність роботи технічних спеціалістів та інженерів. Згідно з нею, близько 9,5% розробників фактично нічого не роблять на своїй роботі.
Для них навіть спеціальну назву придумали — ghost engineer. Так само, як і quiet quitting («тихе звільнення»), це є наслідком дистанційної роботи, під час якої важче спостерігати та оцінювати залученість кожного члена команди. Фактично ghost engineer робить мінімальну кількість роботи для того, щоб не зазнати звільнення і таким чином не лише тягне загальну ефективність команди на дно, а й завдає збитків бізнесу, отримуючи повноцінну оплату за свою так звану роботу.
Перед тим, як ви почнете трішки прискіпливіше звертати увагу на своїх тім-мейтів, ось тут можете почитати розгорнуту статтю на цю тему.
Щось почитати
🔹 Підходить кінець року і всі пробують зробити якісь прогнози про те, що ж нас чекає у 2025. Якщо цікавитесь безпекою і всім до неї дотичним, можете ознайомитись з прогнозами команди Phylum тут.
🔹 Історія про те, як оновити та відрефакторити п’ятирічний проєкт на Node.js.
🔹 Команда Cloudflare розповідає про те, як вони прикрутили аутентифікацію до AI Gareway.
🔹 Знань про архітектуру мало не буває. Пропоную ознайомитись із книгою Дениса Полторака про Архітектурні Метапатерни.
🔹 Друга частина історії про те, як Bun підтримують V8 API без, власне, самого V8.
🔹 Я дуже люблю читати та розбирати усілякі технічні кейси великих компаній, якими вони інколи діляться у свої технічних блогах. Цього разу цікавим є приклад імплементації абстракції для лічильника.
🔹 Не чули про Heroku вже купу часу? Я також, але цей сервіс живе і навіть має свій технічний блог, у якому написали непогану статтю про те, як зробити правильно задокументоване Rest API. Ще й з аутентифікацією на основі Fastify.
🔹 А ось тут вже кейс від Reddit про те, як вони досягнули 100 тисяч прочитань за секунду у своїй архітектурі.
🔹 Як типізувати process.env? Якщо знаєте, то можете пропускати, якщо ж ні — вам буде корисною нова стаття від Matt Pocock.
🔹 John Reilly розповідає про azdo-npm-auth.
🔹 У блозі команди AssemblyAI вийшов пост про те, як за допомогою їх сервісу та Twilio розмовляти із ChatGPT, наче по телефону.
🔹 У блозі Deno вийшла стаття про одну з найцікавіших фішок deno compile. Для тих, хто не в курсі, саме так можна будувати застосунки, готові для запуску на різних платформах. Як це працює, можете почитати у статті та офіційній документації.
Щось подивитись
🔹 Чудова доповідь від Peter van Hardenberg про те, чому ж ми не можемо розробляти просте програмне забезпечення:
Why Can’t We Make Simple Software? — Peter van Hardenberg
🔹 Опублікували записи виступів із конференції EDA Days Warsaw:
Observability in an Asynchronous World • James Eastham • GOTO 2024
🔹 Цікава розмова про Serverless від Ben Ellerby та Julian Wood:
Innovations in Serverless & Event-Driven Solutions • Ben Ellerby & Julian Wood • GOTO 2024
🔹 Нове відео від Fireship, де згадують про інженерів-привидів та інші новини світу технологій:
Sketchy Stanford study says 9.5% of programmers are «ghosts»...
🔹 Трошки про Type Safety в Prisma:
Write Raw SQL with Type Safety | Prisma TypedSQL
🔹 Короте-е-есенький приклад того, як можна працювати із сокетами в Deno:
🔹 Erick Wendel поспілкувався із представником Node.js TSC — Marco Ippolito про нативну підтримку Typescript в Node.js:
Node.js now supports TypeScript natively (feat Marco Ippolito — Node.js TSC)
🔹 Розмова із Ryahn Dahl про Deno та майбутнє JavaScript:
Creator of Node talks Deno 2.0 and the Future of JS
🔹 Якщо ви вже знаєте Node.js, проте ще не знаєте Nginx, але є така потреба, то це відео саме для вас:
Full NGINX Tutorial — Demo Project with Node.js, Docker
Бібліотека місяця
Якщо хтось засумував за middleware hell, то ось вам класна бібліотека, яка допоможе відтворити це при роботі з AWS Lambda — middy.js.org.
А для тих, хто ще має сили цього року, можете ще взяти участь у такій крутій ініціативі та порозвʼязувати трішки задачок.
На цьому все, останній цьогорічний випуск Node.js дайджесту добіг свого кінця. Розбирайте різдвяні подарунки, їжте кутю та побачимось з вами у 2025 році 😉
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів