Node.js Recipes – Telegram
Node.js Recipes
3.23K subscribers
167 photos
7 videos
1 file
612 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
Мой коллега Vitalii Ruban, с которым мы вместе были в программном комитете JSFest, делает Free React Course For Beginners. Подробности в канале @reactbeginners.
👍261👎1
​​NIX MultiConf вже у ці вихідні!
Долучайся до наймасштабнішої в Україні IT-конференції!

Стійкість України надихає весь світ. Натхненне цією силою і наше IT-ком’юніті.

Уже цього тижня, 21-22 травня, топові зарубіжні та українські IT-експерти, підприємці та лідери думок об'єднаються на NIX MultiConf, щоб нагадати світові: Україна — надійне місце для розвитку бізнесу.

Долучайся до спільноти NIX MultiConf!

У програмі:
🔹 Виступи зарубіжних та українських бізнес-лідерів
Вперше на NIX MultiConf — окрема панель для підприємців та всіх, хто цікавиться IT-бізнесом.
🔹 Лекції для IT-спеціалістів від фахівців NIX
Новинки технологій, реальні кейси і корисні інструменти для роботи розберемо за такими напрямками: Java, JS, .NET, DATA, QA, PHP, PM, Python та ін.
🔹 Збір донатів на перемогу
Сьогодні кожен тримає свій фронт. Ми боронимо IT-сферу, а наші захисники — Україну. Тому під час трансляції ти можеш долучитися до збору коштів на потреби ЗСУ та волонтерів.

Стати ближче до світових спікерів дуже просто — ставиш їм питання у чаті трансляції й одразу отримуєш відповідь. Так на NIX MultiConf ти вже будеш на одній хвилі з топовими експертами ;).

А поки переходь за посиланням, дізнавайся повну програму конференції та обирай цікаві тобі лекції. 

Коли і де: 21-22 травня, онлайн на YouTube-каналі NIX

Чекаємо тебе на NIXMultiConf!
Все буде Україна! Все буде NIX!
👍8🔥3💩1
Forwarded from ДевОпс Інженер 🇺🇦 (Oleg Mykolaichenko)
Друзі, DevOps Days Kyiv зібрав €100000 і залучив Келсі Хайтауера!

Точніше, наразі результат такий: €101,300 raised of the €100,000 goal

Хочу поділитись з вами великою радістю і гордістю - DevOps Days Kyiv досяг бажаного результату і залучив кошти, які розподілить між 6 перевіреними фондами (детальніше - на сайті). Особливістю є те, що кошти не перерозподілені всередині країни - івент був націлений на міжнародну DevOps аудиторію, відповідно в більшості випадків донатили великі компанії та міжнародні спільноти, які мають відношення до DevOps. Тобто я це бачу як пряме залучення коштів, що є, безсумнівно, прекрасним результатом.

Багато хто брав участь у івенті, але для тих хто пропустив - додаю посилання на 2 дні конференції:
👉 https://www.youtube.com/playlist?list=PL_O8YSX8ckfccTEvjp26fBXiaYzijUPD2
👉 https://www.youtube.com/playlist?list=PL_O8YSX8ckfcoRds7TEjsP_T6EFe69vuu

Цікаво, що всі без винятку слайди та доповіді мали на меті показати підтримку, прихильність, або досвід України та цей вектор червоною ниткою пройшов через всю адженду конференції - DevOps in crysis. Символічно зробила Lena Hall з AWS - в неї не було жодних інших кольорів на слайдах, окрім синього і жовтого.

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

Окей. Звичайно, результат 100к не може бути реалізований без найсильнішої команди. Тому, якби у конференції могли б бути титри - нехай вони будуть тут (порядок довільний):

⭐️ Mykola Marzhan
⭐️ Yurii Rochniak
⭐️ Olha Truten
⭐️ Margaret Valtierra
⭐️ Sasha Rosenbaum
⭐️ Viсtoria Korobkina
⭐️ Julia Olefir
⭐️ Diana Tereshchenko

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

Українські девопс-козаки, які готували доповідь англійською (!), були готові підтримати і поділитись досвідом з міжнародною DevOps спільнотою:
💪 Volodymyr Tsap
💪 Vsevolod Poliakov
💪 Andii Bilous
💪 Anton Babenko

І окремо адміни опенспейс кімнат, які запалювали теми, слідкували за порядком і задавали тренд:
🎯 Vlad Voloshyn
🎯 Vlad Panchenko
🎯 Roman Tkach
🎯 Serhii Mikhno
🎯 Maxym Vlasov
(+ ті самі люди зі списків вище)

Ледь не забув інформаційних партнерів (підписуйтесь на ці канали): 
@catops
@xpinjection_channel
@oleg_log
@full_of_hatred
@sysadmin_tools
@devops_easy
Serhii Mariiekha - повертай свій канал 
@deadopsclub
@ddosKotyky
@KharkOps
@UkropsDigest

Десятки мітингів підготовки, сотні імейлів, тисячі відвідувачів і €101,300 залучено станом на зараз.

Завершити хотілося б словами інженера на ім'я Дункан з Ірландії, який прийшов в кімнату опенспейсу зі словами:
- “До конференції кинув донат, а зараз захотів послухати про що ви тут говорите. Але в мене там бабця і жіночка з України - я їх захостив, то зараз уже піду подивлюсь, що і як вони там.”
“Ооооо мееен!” - відповіли всі одночасно з цієї кімнати.
🔥21👍12👎1
Forwarded from JavaScript.Ninja News (Illya Klymov 🇺🇦)
Друзі, сьогодні о 6 вечора пан Артем Захарченко, людина яка 10 років проводила KharkivJS прийде на благодійний подкаст з Сашею Соловйовим, де буде обговорювати волонтерство і айтішечку. Я певен що у Артема безліч історій і про волонтерство (навіть ті що я знаю) і про namecheap.com, де він працює

Приєднуйтесь, буде цікаво. Ну і оскільки стрім благодійний є мета - зібрати на дрон для підрозділу Кракен. Я вже підтримав і закликаю вас зробити також

https://www.youtube.com/watch?v=1k_HYTPN4Ao
10👍7👎1
Я відновлю регулярні публікації про Node.js у червні. Якою мовою?

I will resume regular posting about Node.js in June. In what language? Я возобновлю регулярные публикации об Node.js в июне. На каком языке?
Final Results
59%
Українською мовою
42%
English
28%
Я против РФ, но читать мне быстрее на русском
👍8😁2👎1
6-10 червня запрошуємо долучитися до тижня онлай-мітапів Grammarly Tech Week #StandWithUkraine!

Усі події Grammarly, як завжди, безкоштовні. Ми будемо вдячні учасникам за будь-який внесок до фонду чи організації (кілька варіантів можна знайти за посиланням https://gram.ly/GTWUkraine), які підтримують Україну. 🇺🇦

📢Протягом тижня щовечора експерти з інженерних та продуктових команд ділитимуться досвідом і розповідатимуть більше про підходи до розробки та тестування у Grammarly!

Реєструйтесь і долучайтесь до подій:
🗓7 червня: The Story of Declarative React at Grammarly - Як команді Grammarly Editor вдалося побудувати архітектуру з імплементацією Declarative React компонентів, з якими технічними викликами вона зіткнулася під час реалізації та яким чином сформувала нову UI бібліотеку “Embrace”. Усе це обговоримо на зустрічі з Grammarly Software Engineer Олександром Сугаком.
Реєстрація: https://gram.ly/3LyPYAI

🗓9 червня: How We Test at Grammarly: General Processes and Reactive Code Testing - Grammarly Software Engineers Олексій Левжинський та Денис Кашковський розкажуть про те, як ми тестуємо в Grammarly, для чого потрібні Marble-тести і як вони покращують якість тестування.
Реєстрація: https://gram.ly/3Nu3FlH

Мова доповідей: англійська.

Більше івентів Grammarly Tech Week шукайте за посиланням: https://gram.ly/3wZGCsl.

До зустрічі!
👍18
TL;DR; Помилка у await someAsyncFn().catch() створює Unhandled Promise Rejection, тобто аргумент у catch() є обов'язковим.

Я вже розповідав про Floating Promise. Вони створють Unhandled Promise Rejection. Щоб знаходити такі проблеми я використовую @typenoscript-eslint/no-floating-promises. Це правило говорить, щоб не було Floating Promise треба зробити одне з:
await цього promise-а
return цього promise-а
– додати до цього promise chain .then() з двома аргументами
– додати до цього promise chain .catch() з одним аргументом

Я вважав, що try catch та catch у promise chain працюють однаково. Тому для мене було несподіванкою, що await someAsyncFn().catch() не перехоплює помилку, що створює Unhandled Promise Rejection. Так само станеться якщо аргумент у catch буде null або undefined. Catch це синтаксичний цукор then(undefined, cb). Змінюючи цей cb ми контролюємо поведінку promise chain, тому cb не є обов'язковим.

Для мене це виглядає, як бага у @typenoscript-eslint/no-floating-promises. Як тимчасове рішення я додав таке правило:
'no-restricted-syntax': [
'error',
{
selector: "CallExpression[callee.property.name='catch'][arguments.length!=1]",
message: 'Catch should have exactly one argument'
}
],

PS Велика подяка Віктору та Олексію за коментарі.
👍44🤔3
Я тільки вчора додався у waitlist, а сьогодні вже прилетіло запрошення на бета-тест. У кінці місяця поділюся враженнями.
GitHub Copilot це плагін для IDE (WebStorm/VSCode/etc) який за допомогою AI перетворю англомовні коментарі у код. Більше інформації та реєстрація на бета-тест за посиланням
👉 https://copilot.github.com/
🔥25🤔7👎2👍1
​​Сьогодні порекомендую чудовий інструмент для візуалізації процесів. Називається BPMN (Business Process Model and Notation). Можна використовувати як для опису бізнес-процесів, так і flow в мікросервісній архітектурі. Добре допомагає побачити проблемні місця – не правильне місце виконання, послідовність тощо.

посилання:
– https://bpmn.io/
https://www.bpmn.org/
https://github.com/bpmn-io/bpmn-js
👍308
​​Node.js development in 2022: trends and techniques
#worth_seeing

Команда Fwdays викладають у публічний доступ відео з грудневої конференції. Серед них і моя доповідь про "Розробка на Node.js у 2022: тренди та прийоми". Я роблю такі доповіді щороку після релізу нової версії, щоб розповісти:
⚙️ нові фічі Node.js v16,
⚙️ нові мовні конструкції JavaScript/TypeScript
⚙️ фреймворки та підходи
Але головне в цьому огляді це відповіді на питання, як, коли і головне навіщо використовувати ці новинки.

Мова виступу російська

👀відео
📕Слайди
🔥48👍14
Конференції цього тижня:
#conferences

OpenJs World конференція від Linux Foundation. Пройде 7-8 червня. Багато доповідей різного рівня та тематики. Вважається найважливішою оффлайн тусовкою серед Core Node.js Contributers.
MongoDB World вендор конференція. Пройде 7-9 червня. Для конференції, присвяченої одному вендору, кількість контенту просто лякає.
WWDC 2022 конференція для розробників від Apple. Пройде 6-10 червня. Актуальність контенту для Backend розробників низька, але конференція в цілком важлива для індустрії.
👍14🔥8
Сьогоднішній рецепт присвячений #npm noscripts
Щоб побачити їхній список треба запустити npm run. Так, без вказівки імені скрипту. Це дуже зручно у новому проєкт, коли ти ще не пам'ятаєш усіх скриптів.

А ось скрипти, які я рекомендую мати у кожному проєкті:
- watch чи start – запускає додаток для розробника, тобто зміни у коді рестартуют додаток
- format – виправлення помилок код-стайла за допомогаю prettier та eslint
- lint – перевірка код-стайлу за допомогаю prettier та eslint
- typing – перевірка за допомогаю typenoscript
- build – створює artifact (bundle у SPA)

Багато скриптів не потрібні, якщо знати про -- -argument. Наприклад,
замість debug, я використовую npm run watch -- -debug. Докладніше у
рецепті Тонкости работы с npm noscripts
👍30🔥10
Attention 📢 9 липня Fwdays проводитиме онлайн конференцію— JS + React fwdays'22 😍 

Тому, вони активно шукають доповіді з JavaScript на основний день конференції🙌🏻

Якщо ви розробник(-ця), хочете виступити, щоб поділитися своїми знаннями і досвідом, а також прокачати свій speaking skill, заповнюйте форму до 13 червня 👉 https://bit.ly/3PVS695

Якщо ви знаєте кому це буде цікаво, будь ласка, поділіться цим дописом😌

Також, окрім основного дня конференції, вони проведуть стрім, де будуть збирати донейти на ЗСУ. 10% від вартості квитка перераховують на гуманітарну допомогу українцям та на ЗСУ, щоб наблизити день нашої перемоги💙💛
👍102
В рамках JS + React fwdays'22 яку з моїх тем вам було б найцікавіше послухати?
Final Results
33%
Protocols comparison for React App: Rest, GraphQL, WS, SSE, Binary
20%
How Design System can speedup delivery?
36%
Monorepo structure for Node.js + React app
10%
TypeScript for React Developers
👍7
Що таке Parameterized query у PostgreSQL?
#database

Використання template string під час створення SQL запитів може стати причиною SQL ін'єкції. Нехай у нас є такий код:
client.query(`INSERT INTO users(name, email) VALUES('${name}', '${email}') RETURNING *`);
Наприклад, порівняйте результати його виконання з
const name = 'Homer';
const email = 'homer@simpson.com';
та
const name = 'Hacker';
const email = "hacker@simpson.com'); DELETE FROM users --";
Звичайно, валідація вхідних даних може запобігти ін'єкції SQL. Однак правильно не використовувати у запитах JS змінні, а параметри.
Виправлений код виглядає так:
client.query('INSERT INTO users(name, email) VALUES($1, $2) RETURNING *', [name, email]);
Усі query builders генерують такі запити, а DB клієнти вміють із ними працювати.
👍40💯4
​​Друзі, раді вам повідомити, що 9 липня команда Fwdays проведе онлайн-конференцію JS+React fwdays’22! 🤩

🤓 В основний день конференції (9 липня, субота) на вас чекають доповіді не тільки з React, але ще й з JavaScript, ознайомитись з програмою івента можна за посиланням 👉 https://bit.ly/3bG6GC5 

Програма з головними спікерами:  
🔹Наталія Теплухіна розповість про “Local state and server cache: finding a balance”
🔹Володимир Агафонкін говоритиме про “Життєвий JavaScript: вирішення побутових задач візуалізацією даних”
🔹Роман Шевчук виступить з доповіддю “Use Component Drivers to Control Components in Tests”
🔹Інна Іващук розкаже про ”Use the Force and automate React app checks”
🔹Віктор Турський розповість про “Автоматизовані тести для React фронтенду”
🔹Chen Hui Jing — “Building layouts the way the web intended” та не лише.
 
Види участі:
FREE ONLINE (перегляд доповідей у всіх треках конференції 9 липня)
ONLINE FULL (перегляд доповідей у всіх треках 9 липня та додаткових форматах, доступ до записів всіх ефірів після івенту та ін) 
Який обирати — вирішувати тільки вам. Реєструйтесь безкоштовно або використайте промокод 04D3B0D2A1 та отримайте знижку 5%. Деталі за посиланням 👉 https://bit.ly/3bG6GC5

Також, 8 липня о 17:00, відбудеться благодійний стрім з експертами-айтівцями, які поділяться своїм досвідом роботи під час війни в Україні. Основна мета стріму — зібрати 300 000 грн на коптер для ЗСУ. Зібрані кошти будуть передані у благодійний фонд KOLO.

Приєднуйтесь! Слава Україні! 💙💛
👍11
​​Can You Change the Behavior of a Running Node.js Process From the Outside?
#worth_seeing

Доповідач Vladimir de Turckheim показує як за допомогою дебаг протоколу змінити поведінку Node.js процесу. Так це hacking. Саме тому, деякі компанії для продакшену компілюють Node.js без модуля inspector.

👀відео
🔥10👍1
#list

Сьогодні у рекомендаціях добірка посилань You don't (may not) need. Якщо у вас на проєкті ще використовується moment.js, то я рекомендую почати з You don't (may not) need Moment.js. Для React розробників буде цікаво прочитати, чому їм може бути не потрібні Redux та React Router. Для Node.js розробників як завжди я рекомендую краще знати CLI.
🔥10👍93
Навіщо потрібне infer у TypeScript
#typenoscript

Ключове слово infer — це потужний інструмент, який дозволяє розгортати та зберігати типи під час роботи з чужим TypeScript кодом. Воно не може використовуватися без Conditional Types та поза пропозицією extends. Infer дозволяє визначити змінну в межах нашого обмеження, на яку буде посилатися або повертати.

наприклад, так можна отримати тип першого аргументу функції:
type GetFirstArgumentOfAnyFunction<T> = T extends (
first: infer FirstArgument,
...args: any[]
) => any
? FirstArgument
: never
Зверніть увагу, що описати це тільки через генерики неможливо.
👍23🤔12
Як виправити npm ERR! ERESOLVE could not resolve?
#npm

При встановленні залежностей можна часто побачити помилку:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
...
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

Відновлення залежностей не завжди варіант. Тому до Node.js 16.14 рекомендований спосіб був прописати legacy-peer-deps=true у .npmrc проекту або використовувати yarn resolutions. У Node.js 16.14 йде npm 8.3. Цей апдейт додав overrides, аналог yarn resolutions. Приклад використання в package.json для одного проекту React:
"dependencies": {
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-json-view": "^1.21.3"
},
"overrides": {
"react-json-view": {
"react": "18.1.0",
"react-dom": "18.1.0"
}
}

Рецепти на тему:
Що таке .npmrc і чому його варто додати?
Як виправити код у node_modules?
Тонкощі роботи з npm noscripts
👍27