Get Mystery Box with random crypto!

Node.js Recipes

Логотип телеграм -каналу node_recipes — Node.js Recipes N
Логотип телеграм -каналу node_recipes — Node.js Recipes
Адреса каналу: @node_recipes
Категорії: Технології
Мова: Українська
Передплатники: 2.47K
Опис з каналу

По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Співробітництво https://telegra.ph/node-recipes-01-19

Ratings & Reviews

4.00

3 reviews

Reviews can be left only by registered users. All reviews are moderated by admins.

5 stars

2

4 stars

0

3 stars

0

2 stars

1

1 stars

0


Останні повідомлення 3

2022-08-04 10:01:11 Які npm пакети варто встановити глобально?
#list #package

Сьогодні розповім, які пакети в мене встановлені глобально. Я їх використовую як CLI утиліти.
- ngrok/localtunnel робить вашу програму доступною в Internet
- jscpd знаходить дублікати коду. Автор Андрій Кучеренко веде @mathrandomcommunity
- cost-of-modules показує розмір пакетів, що використовуються. Дозволяє швидко пояснити, чому в Dockerfile після npm run build необхідно робити npm prune --production.
- sort-package-json сортує package.json до канонічного вигляду
- depcheck знаходить не використовувані або не оголошені в package.json залежності
- browser-run/bcat виводить результат роботу іншої CLI команди у браузер
- license-checker показує які open source ліцензії у пакетів в ваших залежностях

Перевірити ваш список: npm list -g. А що і навіщо використовуєте ви?
3.2K views07:01
Відкрити / Коментувати
2022-06-21 11:01:23 Що таке 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 клієнти вміють із ними працювати.
813 viewsedited  08:01
Відкрити / Коментувати
2022-06-09 15:55:33
В рамках JS + React fwdays'22 яку з моїх тем вам було б найцікавіше послухати?
Anonymous Poll
34%
Protocols comparison for React App: Rest, GraphQL, WS, SSE, Binary
20%
How Design System can speedup delivery?
38%
Monorepo structure for Node.js + React app
8%
TypeScript for React Developers
301 voters828 views12:55
Відкрити / Коментувати
2022-06-09 15:43:23
Attention 9 липня Fwdays проводитиме онлайн конференцію— JS + React fwdays'22  

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

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

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

Також, окрім основного дня конференції, вони проведуть стрім, де будуть збирати донейти на ЗСУ. 10% від вартості квитка перераховують на гуманітарну допомогу українцям та на ЗСУ, щоб наблизити день нашої перемоги
879 views12:43
Відкрити / Коментувати
2022-06-07 15:02:20 Сьогоднішній рецепт присвячений #npm scripts
Щоб побачити їхній список треба запустити npm run. Так, без вказівки імені скрипту. Це дуже зручно у новому проєкт, коли ти ще не пам'ятаєш усіх скриптів.

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

Багато скриптів не потрібні, якщо знати про -- -argument. Наприклад,
замість debug, я використовую npm run watch -- -debug. Докладніше у
рецепті Тонкости работы с npm scripts
1.1K viewsedited  12:02
Відкрити / Коментувати
2022-06-06 10:01:36 Конференції цього тижня:
#conferences

– OpenJs World конференція від Linux Foundation. Пройде 7-8 червня. Багато доповідей різного рівня та тематики. Вважається найважливішою оффлайн тусовкою серед Core Node.js Contributers.
– MongoDB World вендор конференція. Пройде 7-9 червня. Для конференції, присвяченої одному вендору, кількість контенту просто лякає.
– WWDC 2022 конференція для розробників від Apple. Пройде 6-10 червня. Актуальність контенту для Backend розробників низька, але конференція в цілком важлива для індустрії.
674 views07:01
Відкрити / Коментувати
2022-06-04 13:48:52 ​​Node.js development in 2022: trends and techniques
#worth_seeing

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

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

відео
Слайди
878 viewsedited  10:48
Відкрити / Коментувати
2022-06-03 16:00:44 ​​Сьогодні порекомендую чудовий інструмент для візуалізації процесів. Називається BPMN (Business Process Model and Notation). Можна використовувати як для опису бізнес-процесів, так і flow в мікросервісній архітектурі. Добре допомагає побачити проблемні місця – не правильне місце виконання, послідовність тощо.

посилання:
– https://bpmn.io/
– https://www.bpmn.org/
– https://github.com/bpmn-io/bpmn-js
1.1K views13:00
Відкрити / Коментувати
2022-06-02 15:49:31
Я тільки вчора додався у waitlist, а сьогодні вже прилетіло запрошення на бета-тест. У кінці місяця поділюся враженнями.
GitHub Copilot це плагін для IDE (WebStorm/VSCode/etc) який за допомогою AI перетворю англомовні коментарі у код. Більше інформації та реєстрація на бета-тест за посиланням
https://copilot.github.com/
1.0K views12:49
Відкрити / Коментувати
2022-06-01 17:45:32 TL;DR; Помилка у await someAsyncFn().catch() створює Unhandled Promise Rejection, тобто аргумент у catch() є обов'язковим.

Я вже розповідав про Floating Promise. Вони створють Unhandled Promise Rejection. Щоб знаходити такі проблеми я використовую @typescript-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 не є обов'язковим.

Для мене це виглядає, як бага у @typescript-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 Велика подяка Віктору та Олексію за коментарі.
800 viewsedited  14:45
Відкрити / Коментувати