Получи случайную криптовалюту за регистрацию!

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

Рейтинги и Отзывы

4.00

3 отзыва

Оценить канал node_recipes и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

2

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

0


Последние сообщения 32

2021-05-29 10:01:19 Top 8 web things to know from Google I/O 2021
#worth_seeing

На прошлой неделе прошел Google I/O 2021. Это конференция, где Google показывает свои новинки, в том числе и связанные c Google Chrome. Рекомендуемое к просмотру видео показывает 8 новинок и занимает всего на 4 минуты. Так же есть полная версию What's new for the web platform на полчаса.

На #nodejs разработку может повлиять анонсированная поддержка WebAssembly SIMD внутри Google Chrome. SIMD расшифровывается как Single Instruction, Multiple Data. С его помощью можно ускорить расчеты, например обработку изображений, видео и т.д. Подробней, что такое SIMD. Мы получим обновленную версию v8 с его поддержкой в v16 Node.js. Пока я не видел обоснованного использования WebAssembly на бэкенде, но инструмент явно интересный.
465 viewsedited  07:01
Открыть/Комментировать
2021-05-28 10:01:06
Как посчитать нарастающий итог?
#database

Частая ошибка начинающих #nodejs разработчиков – лишняя нагрузка CPU. Один из методов разгрузить CPU это использование базы данных для расчетов. Большинство разработчиков используют агрегатные функции, но не оконные. Возможно, их отпугивает название, которое на английском звучит как OS от Microsoft – windows.

На картинке к рецепту вы видите различие работы агрегатных и оконных функций. В качестве примера, решим SQL задачу.

Дана схема:
CREATE TABLE users (
 id       SERIAL PRIMARY KEY,
 email varchar(100) NOT NULL
);
CREATE TABLE operations (
 id       SERIAL PRIMARY KEY,
 user_id int4 NOT NULL,
 amount int4 NOT NULL,
 created_at timestamp DEFAULT now(),
 FOREIGN KEY(user_id) REFERENCES users(id)
);
Вывести историю операций пользователя с балансом на момент окончания операции.

Решение будет иметь вид:
SELECT *, SUM(amount) OVER (PARTITION BY user_id order by created_at) as balance FROM operations;

Ссылки:
пример в db-fiddle,
документация по windows функциям.
591 views07:01
Открыть/Комментировать
2021-05-27 18:01:25
Уже через 3 часа Voice Chat #3, About GraphQL
#voice_chat

Подключайтесь послушать и оставляйте вопросы в комментариях.

Гость: Павел Черторогов (https://github.com/nodkz), евангелист GraphQL. Хоть он и не любит слово евангелист ))) Работает архитектором информационных систем в казахстанской хостинговой компании ps.kz (https://ps.kz/). Занимается построением консли для управления облачными услугами.

Вопросы:
Что такое GraphQL? Где его стоит, а где не стоит применять? 
Каков идеальный тех стэк для GraphQL проекта в 2021?
GraphQL паттерны – микросервисы, кодогенерация, федерация и т.д? Какие инструменты?
Как тестировать GraphQL проект?
162 views15:01
Открыть/Комментировать
2021-05-27 10:13:07 Что нового в TypeScript 4.3?
#typescript

Вчера вышла новая версия TypeScript 4.3.

Основной фокус релиза в работе с классами. Сюда входят:
новое ключевого слово override указывающее, что метод переопределен в ходе наследования. Выкидывает ошибку, если у родителя нет метода
разделение типов для getter и setter (Separate Write Types on Properties)
Улучшена поддержка приватных ECMAScript #private
static Index Signatures
Type helperConstructorParameters теперь работает и с абстрактными классами

Связанное с типами:
Always-Truthy Promise Checks, для случаев аналогичных eslint правилуrequire-await
Template String Type Improvements, нужная вещь если у вас сложная бизнес логика в зависимости от строк.
Улучшено определение типа по контексту (Contextual Narrowing for Generics).

Улучшения процесса сборки:
Размер .tsbuildinfo теперь меньше
Инкрементная сборка в первый раз теперь идет так же быстро как и обычная. Наконец-то можно выкинуть tsconfig.dev.json!

Улучшения IDE поддержки, работает за счет TypeScript’s language service. Важно для VS Code, не важно для JetBrains.
Import Statement Completions
@link в js-doc
Go-to-Definition on Non-JavaScript File Paths
516 views07:13
Открыть/Комментировать
2021-05-26 18:10:15 Анонсы одной строкой
#announcement

Сегодня, через 20 минут: Google Cloud Jam в рамках комьюнити GDG Cloud Kyiv. https://t.me/gdg_cloud_kyiv/166
Завтра: Voice Chat о GraphQL. https://t.me/node_recipes/129
На следующей неделе: мой доклад по Nest.js в рамках FWDays. https://t.me/fwdays/701
189 views15:10
Открыть/Комментировать
2021-05-26 10:00:47 Как автоматизировать работу с git?
#cli

У git есть малодокументированная возможность – external commands, то есть команды определенные пользователем. Упрощено говоря, git somename это алиас для команды git-somename.

Использовать можно так:
Смотрим зарегистрированные пути echo $PATH.
Выбираем папку из , где мы будем создавать команду.
Делаем файл с нашей команда git-done и таким контентом:
#!/usr/bin/env bash
DEFAULT_BRANCH=master
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
git checkout ${DEFAULT_BRANCH}
git pull
git branch -D ${CURRENT_BRANCH}
Делаем файл исполняемым chmod +x git-done

Так мы создали команду git done, которая удаляет активную ветку и переключает на master. У меня это команда еще передвигает текущую задачу в следующую колонку в Jira.

Обратите внимание на первую строчку #!/usr/bin/env bash, после #! (shebang) идет интепритатор. Для написания скрипта на #nodejs используется конструкция #!/usr/bin/env node

Можно установить один из готовых скриптов: npm install -g git-open. Он будет открывать текущую ветку в вашем репозитории. Подробности

Так же для проектов с GitHub рекомендую посмотреть cli.github.com
467 views07:00
Открыть/Комментировать
2021-05-25 10:02:13 Как и зачем проверить, что код запущен под нужной версий Node.js?
#nodejs_api

Использование свежих фич #nodejs или новых синтаксических конструкция языка приводит к тому, что ваше приложение не сможет работать под старой версий. Примеры:
crypto.randomUUID – свежая фича для нативной генерации UUID 4
Различное поведения Date в зависимости от версии V8. Пример
Поэтому стоит проверять версию и выкидывать не обработанное исключение, если код запущен под неверной версией. Делать это необходимо в entry-point файле, с которого идет запуск всего приложения.

Пример проверки только мажорной версии:
const nodeVersion = process.versions.node.split('.')[0];
if (nodeVersion !== '14') throw new Error(`App requires node.js version 14`);

Пример проверки всей версии:
const nodeVersion = process.versions.node;
if (nodeVersion !== '14.17.0') throw new Error(`App requires node.js version 14.17.0`);

Поле engines внутри package.json носит рекомендательный характер и не используется при запуске приложения ни через npm run scripts, ни напрямую. При желание его можно использовать на уровне кода после require('./package.json'). В комментариях, есть пример от Александра.
595 viewsedited  07:02
Открыть/Комментировать
2021-05-24 16:27:02
Voice Chat #3, About GraphQL, 27 Мая 21:00-22:00 (GMT+3)
#announcement #voice_chat

Гость: Павел Черторогов, евангелист GraphQL. Хоть он и не любит слово евангелист ))) Работает архитектором информационных систем в казахстанской хостинговой компании ps.kz. Занимается построением консли для управления облачными услугами.

Вопросы:
Что такое GraphQL? Где его стоит, а где не стоит применять?
Каков идеальный тех стэк для GraphQL проекта в 2021?
GraphQL паттерны – микросервисы, кодогенерация, федерация и т.д? Какие инструменты?
Как тестировать GraphQL проект?

Ссылка для подключения: https://t.me/node_recipes?voicechat
До встречи в эфире!
898 viewsedited  13:27
Открыть/Комментировать