Node.js Recipes
3.23K subscribers
174 photos
7 videos
1 file
622 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
Хочу поділитися з вами незручною правдою. Бізнесу не потрібні:
- фреймворки
- системи логування
- CI/CD
- тестування
- i так далі.

Ці процеси та інструменти потрібні нам, інженерам, щоб якісно виконувати свою роботу.

Коли ти приходиш до ресторан та замовляєш їжу, то шеф-кухарь не розповідає тобі, як він користується ножами чи м’ясо для котлет майже закінчується. Так і бізнесу потрібен готовий працюючий додаток. А деталі ваших інструментів можуть цікавити хіба що CTO. Тому не розповідайте стейкхолдерам технічні деталі, а лише питайте, який результат їм потрібен та коли.

Ще раз, це ваше завдання - знати документацію, знаходити час для оновлення технічного стеку або погашення технічного боргу. Знаходити баланс між технічними завданнями і впровадженням бізнес-фіч – це ознака Senior-а.

PS Пост написаний за підсумками обговорення з менті питання “Як отримувати від бізнесу апруву на технічні завдання?”. Контекст: менті - єдиний розробник у проєкті. Моя позиція, як ви вже здогадалися з допису, не обговорювати це питання з бізнесом, а просто виділяти 2 години кожен робочий день на технічні завдання.
👍625😁4🔥1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Гарне відео з типовою задачею, яка буваю підчас розробки та її має вміти виконувати TypeScript Dev. Такого рівня задачу під час live coding я відаю на співбесіді для Middle та вище рівня.
Цікавий факт: AI робить такі речі лише тоді, коли йому прямо це вказати як окреме завдання. За замовчуванням він або використає any, або взагалі почне писати свої типи замість повторного використання бібліотечних.
👍67🤯137
Як і навіщо перевіряти, що код запущено під потрібною версією Node.js?
#nodejs_api

Використання нових можливостей nodejs або сучасного синтаксису мови може призвести до того, що ваш застосунок не запуститься на застарілій версії Node.js. Тому варто перевіряти версію Node.js і кидати необроблену помилку, якщо код запущено під неправильною версією. Робити це потрібно у файлі входу (entry point), з якого запускається все застосування. Таким чином ви гарантуєте, що середовище, в якому розробляється ваш код і яке буде використовуватися на інших оточеннях чи комп'ютерах інших розробників, буде те саме.

Приклад коду:
const expectedVersion = '22.16.0';
if (process.versions.node !== expectedVersion) throw new Error(`App requires node.js version ${expectedVersion}`);

Під час оновлення версії Node.js ми змінюємо expectedVersion у коді, Dockerfile і GitHub actions.

PS Це повтор рецепту від 2021 року.
👍354
👩‍💻 Відкрит набір на AWS She Builds Mentorship Program 2025!

Це безкоштовна глобальна програма 1:1 менторства для жінок у tech. Це програма вже не вперше та я чув позитивні відгуки.
Тут тебе поєднають із досвідченими менторками та менторами з AWS, щоб допомогти:
Прокачати кар’єру
Знайти свій вектор розвитку
Отримати підтримку в реальному світі технологій

📅 Тривалість: 12 тижнів (1 вересня – 28 листопада 2025)
🕓 Дедлайн подачі: 30 червня
🌍 Участь — онлайн, з будь-якої точки світу

🔗 Подати заявку: тут
📌 Умови: для жінок 18+, які навчаються, працюють або хочуть увійти в сферу технологій

Так, я знаю, що більшість читачів каналу не відповідають критеріям цієї програми. Для вас, шановні колеги, я рекомендую прочитати книгу 12-тижневий рік. Саме стільки триватиме вищезгадана програма. Повірте, якщо ви будете застосовувати ідеї з цієї книги, то навіть без жодного наставника зможете прокачатися у AWS чи яку мету ви оберете.
10🥴3🤮2🫡2💩1🤡1
За замовчуванням Node.js використовує лише одне ядро, але ми можемо використовувати Worker threads або Child Process.
Якщо ви їх використовуєте, настійно рекомендую під час запуску програми перевіряти кількість доступних ядер для вашого застосунка. Таким чином ви гарантуєте, що програма матиме необхідну кількість ресурсів. Наприклад, DevOps не забув внести зміни у deployment файл для Kubernetes.

Приклад коду
import { availableParallelism } from ‘node:os'; // Node 18.4+
const vCPUs = availableParallelism();
if (vCPUs < 2) throw new Error(`Minimum 2 vCPUs is required`);

Зверніть увагу, що availableParallelism віддає цілі значення, тоді як налаштування кількості ядер може бути дробовою. Приклад:
docker run --rm --cpus=1.5 node:22-alpine node -e "console.log(require('os').availableParallelism())"

Звісно, ми можемо зробити це через /sys/fs/cgroup/cpu файли щоб отримати дробове значення, але це вже OS specific

Как це буде працювати?
Контейнер може одночасно запускати 2 потоки, але в сумі за 100 мс не повинен перевищувати 150 мс процесорного часу інакше Linux throttling починає «гальмувати» процеси всередині контейнера, знижуючи їх пріоритет. Ось щоб у нас не було throttling, нам й потрібно перевірити availableParallelism.
👍338
Сьогодні хочу поділитися одною із email-розсилок, які регулярно читаю – це Simon Wilson Newsletter. Якщо ви віддаєте перевагу RSS чи блогам, можете читати й так – simonwillison.net

У Саймона класний контент, присвячений LLM/AI та інструментам, який він створює для них.
Ось інструменти, які потрібно знати:
- https://github.com/simonw/llm - Access large language models from the command-line
- https://github.com/simonw/files-to-prompt - Concatenate a directory full of files into a single prompt for use with LLMs
- https://github.com/simonw/sqlite-utils - CLI utility for manipulating SQLite databases

PS Я обіцяв своєму менті зробити підбірку з email-розсилок, які я читаю. Але просто дати їх списком, без пояснень, чому це варто читати, буде схоже на черговий карго культ. Тому я буду робити для вас такі публікації. Дайте вогник, якщо так краще.
🔥1259👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
Ви, скоріше за все, знаєте Лірана Таля за його доповідями про Node.js та безпеку. Він є автором:
🔗 npm Security Cheat Sheet
🔗 Node.js Docker Security Cheat Sheet
🔗 Node.js CLI Apps Best Practices

У нього також є email-розсилка Node.js Security Newsletter з якісним контентом. На цю ж тему він написав кілька книжок - їх можна як знайти на торентах, так і придбати, щоб підтримати автора.

Ще я стежу за ним у медіа, і як багато інших авторів у світі Node.js, він активно працює з AI.
Із останнього - він виклав два цікавих репозиторії:
- awesome-mp-best-practices — найкращі практики для MCP-серверів і клієнтів
- ls-mcp — npm-пакет CLI для перегляду конфігурацій MCP-серверів у системі
👍422🥴1
5 липня відбудеться офлайн-конференція 🤖 AI-конференція Fwdays+DevRain.

Усі доповіді проходитимуть офлайн, трансляція буде доступна онлайн. Конференція збере найкращих українських спікерами з Microsoft, Google, Reface, MacPaw, DevRain та інших. Так серед спікерів - лише ті, хто фізично перебуває в Україні.

🎯 Теми: GenAI, LLMs, безпека, ML в продуктах, практичні кейси.

Використайте промокод Recipes10 та отримайте знижку 10%, деталі за посиланням 👉 https://bit.ly/45fvOJA

Я подивлюся трансляцію або запис. Цікаво, яка частина спікерів буде використовувати napkin.ai для створення зображень для слайдів.
11👍7
На проєкті, де я надаю консалтинг, зупинилась розробка. AI Agent-и та розробники не можуть нічого робити бо CI/CD пайплайни зламані.
Можна, звісно, звинувачувати NPM - у них не працює встановлення пакетів (помилки 502/504), але справжня причина в іншому - у GitHub Actions не налаштовано кешування ні для NPM, ні для побудови Docker-образів.
Так робити не можна. Швидкість та стабільність ваших пайплайнів забезпечується саме кешуванням залежностей.
——
Ще я спостерігаю проблеми в інфраструктурі Google - Google Meet, Firebase Auth - хтозна, чи це збіг.
👍288😨3
Сьогодні поговоримо про Terraform і на кого підписатися, щоб бути в курсі його екосистеми.

🤔Почну з головного питання – навіщо тобі, дорогий читачу, Terraform?
Щоб бути інженером, а не просто розробником.
Розробники вміють тільки писати код (на одній мові / фреймворку), тому їх легко замінює AI.
А от інженер створює продукти, відповідає за їхню роботу аж до продакшену і розуміє DevOps практики.
Terraform – це стандарт де-факто серед IaC (Infrastructure as a Code), тому знати його – мастхев.

🎓Власне, як його вчити? Перевірено на особистому досвіді.

📗Теоретична база:
1. Готуємося до сертифікації Terraform Associate
- learning path by HashiCorp
- відео by FreeCodeCamp
2. Опціонально здаємо іспит за $70 (робочих знижок чи ваучерів я не знайшов)
3. Читаємо Terraform Best Practices

🛠 Практика:
1. Паралельно з теорією пишемо інфру для свого комерційного або pet-проєкту в тому хмарному провайдері, що тобі зручний.
2. Поступово додаємо інструменти з Terraform-екосистеми:
- tfenv
- tflint
- tfupdate
- checkov
- pre-commit-terraform

📬 Як бути в курсі?
Книга і pre-commit-terraform написані моїм улюбленим AWS Hero – Антоном Бабенко.
Він регулярно стрімить на своєму YouTube-каналі та веде Terraform Weekly.
Я читаю його дайджести, а ще реліз-ноути Terraform та провайдерів, які використовую.

Наприкінці посилання на останнє відео Антона з AWS Community Day Armenia.
26👍9❤‍🔥4💅3
Щоб закрити тему Infrastructure as Code, публічно прокоментую альтернативні підходи:
- OpenTofu (форк Terraform) зроблений компаніями-конкурентами, щоб і далі заробляти на Terraform після зміни ліцензії HashiCorp у версії 1.6. Жодна з них не інвестує на рівні HashiCorp, тому продукт і екосистема однозначно програють Terraform.
- Pulumi – IaC, який просувається за рахунок можливості описувати інфру на вашій улюбленій мові програмування (не треба вчити ще одну мову, як для Terraform). Але з розквітом AI-enabled development ця перевага для мене повністю втратила сенс. Якщо хочеться погратися з таким підходом – подивіться CDK for Terraform: робить те саме, але залишає вас у найпопулярнішій екосистемі. Також не рекомендую через дорогу бізнес-модель – платити $0.37 за ресурс у кожному стеку / оточенні – це дорого для IaC.
- Vendor-specific IaC – CloudFormation від AWS, Azure Resource Manager, Cloud Deployment Manager від Google Cloud. Не рекомендую, бо жорстко прив’язують вас до екосистеми одного вендора.
- IaC від frontend-інженерів – alchemy.run, sst.dev та інші. Категорію назвав так, бо вона нагадує: «я не розібрався в наявних фреймворках – тому зробив свій». Виглядають цікаво, і можна отримати користь, якщо розібратись, як вони працюють. Але – низький adoption, незрозуміло, хто за ними стоїть і скільки вони протримаються на ринку – тому не можна використовувати для комерційних проєктів.
- Infrastructure from Code (IfC) – почитати можна тут. Сайт зроблений командою ampt. Змішує код і опис інфраструктури. Підхід не новий – так працює, наприклад, Firebase Functions. Але на практиці створює більше проблем, ніж переваг, і замикає вас у фреймворк, нав’язаний тулом.

Завершу фразою зі списку «Ось що я хотів би знати як професіонал, коли мені було 30»:
Ми обираємо не просто інструмент або фреймворк – ми обираємо цілу екосистему і спільноту.

Так от, мій вибір – Terraform, бо в нього найбільш розвинена екосистема (є, по суті, будь-який провайдер і багато крутих утиліт) і класне ком’юніті.
22👍6
lovable.dev – один із веб-інструментів для вайбкодингу безкоштовний у безлімітному режимі на цих вихідних.

Чудова нагода завайбкодити щось круте!
17
Як розробник підходить до відладки?

Junior – додає console.log() і шукає помилку у виводі.
Middle – користується дебагером і покроково аналізує код.
Senior – пише тест, що відтворює баг, і виправляє проблему.
🤡72😁31🔥142👍2🌚2
Останні кілька місяців маятник хитнувся в інший бік – бізнес починає впроваджувати LLM усюди.

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

На днях у мене з'явився чудовий приклад, чому LLM не завжди підходить. Знайомий GDE створював проект chessarena.ai, це opensource.
З його допомогою дуже зручно проілюструвати що спеціалізоване рішення для завдання може працювати краще, ніж LLM.
👍202
Об GPT‑5
Тепер GPT‑5 працює всередині ChatGPT як єдина система без потреби вручну обирати «режим мислення» — маршрутизатор автоматично активує просунуту версію моделі для складних запитів або якщо користувач прямо просить «подумати». Альтман назвав попередній інтерфейс вибору моделей «дуже заплутаним».


Як я розумію у перекладі з маркетингової мови:
Користувачі запускають дорогі моделі навіть для простих запитів, які легко обробляють і попередні версії. На цьому ми втрачаемо гроші, тому тепер ми самі вирішуватимемо, яку модель використовувати.
😁65👍362🤡2🔥1💯1🤣1
UX in X Developer Portal
😁37👀3💩1😨1
Media is too big
VIEW IN TELEGRAM
Не любите не вмієте верстати? Я теж.
Але іноді доводиться правити Tailwind.
У цьому більше виручає не AI, а розширення для Chrome 👉 gimli.app/tailwind
👍42🔥8