Node.js Recipes
3.23K subscribers
174 photos
7 videos
1 file
622 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
#voice_chat about Development Tools

Гость: Старовойт Андрей, Team Lead WebStorm в JetBrains. Последние семь лет работает над поддержкой самых разных технологий в IDE, начиная от простых библиотек вроде classnames, заканчивая React и TypeScript.

Вопросы:
 Что такое инструменты разработчика?
  Где проходит граница между текстовым редактор и средой разработки?
 Какие инструменты помимо того где мы пишем код, имеют значение?
 Как добавляется поддержка для библиотек и фреймворков?
🔥 И конечно извечный холивар JavaScript VS TypeScript

PS К сожалению я допустил где-то ошибку и запись не произошла. Возможно это глюк телеграмма. Если кто знает как это решить – прошу в личку.
Live stream started
Live stream finished (1 hour)
14 октября пройдет бесплатная онлайн JS #conference от компании JetBrains. Язык докладов английский. Стриминг платформа – YouTube, так что записи будут доступны сразу. Тем не менее я рекомендую смотреть онлайн и задавать вопросы.

В программе 9 докладов. Лично меня заинтересовали: работа с монорепой и новый подход во фронтенде – htmx.

Регистрация: https://pages.jetbrains.com/javascript-day-2021
#cfp #conference

🔍 Команда Fwdays ищет докладчиков на онлайн конференцию для JS разработчиков - Fwdays: JS is back!, которая пройдет 27 ноября!
Приоритетные тематики докладов:
▪️GraphQL
▪️BFF: Backend for Frontend
▪️Exotic JavaScript: devices, VR/AR, DevOps
▪️Performance
▪️Security
▪️Testing
▪️Switch to JS
▪️Not only JS

Если вы или ваши коллеги желаете выступить, обязательно присылайте заявку до 25 октября👉 https://bit.ly/3zgt9eP 

Есть сомнения в теме или ораторских способностях? Не страшно, Fwdays вместе с программным комитетом конференции помогут подготовиться к выступлению 😉
Что нужно знать об Error stack trace?
#nodejs_api

В JavaScript есть встроенный объект Error, который сохраняет stack trace (на русском трассировка стека). Так называется список методов, которые были вызваны до момента, когда в приложении произошло ошибка. Он доступен как error.stack и выглядит так:
Error: Things keep happening!
at /home/user/file.js:525:2
at Frobnicator.refrobulate (/home/user/business-logic.js:424:21)
at Actor.<anonymous> (/home/user/actors.js:400:8)
at increaseSynergy (/home/user/actors.js:701:6)

Плохой практикой является использование throw c литералами или объектами не наследниками Error. У них не будет stack trace.

По умолчанию длина стэка ограничена 10 методами. Параметр можно изменить на уровне кода через Error.stackTraceLimit. На уровне v8 существует флаг --stack-trace-limit. Его можно передать как аргумент или через переменную окружения NODE_OPTIONS=--stack-trace-limit=10

Начиная с 12-ой версии Node.js у нас есть поддержка Async Stack Traces. Пример stack trace:
Error: Oops
at bar (/workspace/test.js:11:9)
at async run (/workspace/test.js:5:3)
Для поддержки этих stack trace рекомендуется делать await перед return. Подробней в nodebestpractices.

Если код скомпилирован с помощью babel или typescript, то правильным будет показывать stack trace для исходного кода, а не скомпилированного. Для этого использовался пакет source-map-support. Под капотом идет использование Error.prepareStackTrace. Однако сейчас Node.js умеет это делать из коробки с помощью флага --enable-source-maps
👍3
Live stream scheduled for
#announcement #voice_chat

23 сентября в 21:00 поговорим о софт скилах.

Гость: Виталий Петренко, JS master, со-организатор Kharkiv Frontend митапов и конференций, евангелист спокойствия и доброжелательности.

Вопросы:
 Что такое софт скилы? Как они проявляются в ежедневной работе инженера?
 Кто и как проверяет софт скилы во время найма?
 Почему важно ставить цели, как совмещать личные цели и цели проекта/команды?
 Какие отличия в требованиях к софт и хард скилам в аутсорсе и продукте?

Ссылка для подключения: https://xn--r1a.website/node_recipes?voicechat
До встречи в эфире!
Как выстрелить себе ногу с помощью microservices?
#architecture

Сегодня рецептик в стиле вредных советов, специально для тех, кто хочет осознано завалить проект.

⚠️ Начинайте новый проект сразу на микросервисах. Monolith first устарел
⚠️ Начиная со второго микросервиса внедрите распределенные транзакции.
⚠️ Оставьте бизнес домен бизнесу. Микросервисы не должны иметь связь с бизнес доменом, вместо этого делайте их универсальными. DDD не для инженеров.
⚠️ Не задумывайтесь об версионирование. Версионирование данных, контрактов, микросервисов, всей системы в целом – возникнет само.
⚠️ Избегайте инструментов для оркестрирования (Kubernetes, Istio и т.д.). Они только усложняют работу. Делайте все на уровне кода, а не на уровне инфраструктуры.
⚠️ Микросервисы созданы, чтобы пробовать новые технологии. Поэтому чем больше у вас будет новых технологий, тем лучше! Каждый новый микросервис – новый фреймворк, а лучше язык!
Через неделю начинается Hacktoberfest!
#announcement

Каждый октябрь Digital Ocean проводит Hacktoberfest. Цель данного мероприятия поощрить участие в проектах с открытым исходным кодом. Если говорить конкретно, то схема такая: в течение октября открыл 4-е пул реквеста в open source проекты – получаешь футболку. В зачет идет любой инкремент, в том числе правки в документацию, тесты и конечно новые фичи.

Участвующие проекты:
– Github: https://github.com/topics/hacktoberfest
– Gitlab: https://gitlab.com/explore/projects?topic=hacktoberfest

Что я рекомендую делать в рамках этого мероприятия:
– Если вы maintainer, т.е. разработчик open source проекта, добавьте тэги на ваш проект и напишите как вам помочь в репозитории и в соц.сетях.
– Если вы комьюнити лид, организуйте мероприятие в партнерстве с одним из open source проектов.
– Если вы просто разработчик, внесите свой вклад в opensource, а заодно выучите что-то новое. Как говориться, поднялся сам спусти лифт для следующего.

Что касается меня, то я сделаю свой контрибьюшен в DefinitelyTyped. Этот репозиторий содержит @types пакеты для поддержки работы typescript.
Audio
Гость: Виталий Петренко, JS master, со-организатор Kharkiv Frontend митапов и конференций, евангелист спокойствия и доброжелательности.

Вопросы:
 Что такое софт скилы? Как они проявляются в ежедневной работе инженера?
 Кто и как проверяет софт скилы во время найма?
 Почему важно ставить цели, как совмещать личные цели и цели проекта/команды?

На последним минутах подключился Алексей Мигуцкий.
Обзор Node.js v16: Что нового в npm v7?
#npm

При установке Node.js автоматически устанавливается npm. Конкретная версия идет как часть бинарника. Ее конечно можно изменить, но я не рекомендую это делать – вам придется делать это везде, т.е. скорее всего вы нарушите repeatability.

Переход с 14-ой версия Node.js на 16-ую обновит npm с 6-ой на 7-ую. Полный список изменений тут. А вот краткий:
– ускорен npm install так что время сопоставимо с yarn@1. На моем проекте время установки сократилось с 33 секунд до 21.
– новый формат package-lock.json v2, без обратной совместимости.
– добавлен npm exec для запуска любой произвольной команды, как если бы это был сценарий npm. По сути это замена npx, который устарел.
– добавлены workspaces (привет монорепозитории). Подробней в документации
npm audit  теперь исправляет больше рисков.
– появился глобальный флаг prefer-dedupe, благодаря которому не нужно запускать npm dedupe

Рецептики по теме:
​​Что такое .npmrc и почему его стоит добавить?
​​Как померять время выполнения команды в терминале?
Обзор Node.js платформы в 2021
#worth_seeing

Сегодня в рекомендациях видео c августовского Trampoline Meetup. Это ежемесячные IT-митапы в регионах России. Докладчик Егор Малькевич делает обзор Node.js платформы, т.е. видео носит обзорный характер и не претендует на глубину или звание всестороннего исследования. Его можно использовать как чек-лист для проверки широты профессионального кругозора #nodejs разработчика. Синьор #nodejs разработчик поймет/слышал термины и инструменты, о которых идет речь в докладе.
30 days of Postman
#service

Материал в стиле "N days of A" делает обучение быть регулярным. Сегодня в рекомендациях именно такое обучение по Postman. Это самый популярный инструмент для работы с REST.

Задания разбиты на 30 дней. Каждое представлено в виде публичной Postman коллекции. Их сложность чередуется. По их окончанию можно получить байджик. Рекомендую пройти и отправлять ссылку на конкретный день коллегам, когда они спрашивают как сделать ту или иную задачу с помощью Postman.

Ссылки:
🔗 Анонс в блоге
🔗 Задания
Запуск Node.js курса совместно с FoxmindEd
#announcement

В июле был voice chat с Сергеем Немчинским. Мне очень импонирует его подход к обучению программированию – только практика, теорию студенты гуглят сами. Поэтому я составил курс по Node.js для его компании. Сегодня FoxmindEd открыли набор в тестовую группу на этот курс, а это только 4 человека.

Детали тезисно:
Целевая аудитория – Junior/Middle FrontEnd разработчики, которые хотят вырасти в FullStack или свитчеры с других языков (я сам переходил в Node.js с PHP)
Задача курса – дать рынку больше разработчиков способных работать на актуальном Node.js стэке.
Формат – как и все курсы в foxmindEd только практика. Вы получаете задачи, приблеженные к реальным, выполняете их и отправляете на код-ревью ментору. Поэтому задания на английском. Задачи идут по возрастанию сложности. Перепрыгивать их нельзя.
Основные фреймворки – Jest для тестирования, express.js+JavaScript в первой половине, Nest.js+TypeScript во-второй половине курса.
Тех.стэк – Node.js 16, npm 7, базы PostgresSQL, MongoDB, Docker, разворачивание на heroku и AWS.
Примеры приложений – Telegram bot, REST/GraphQL API, chat with websockets, file processing, user avatar management.
Продолжительность – зависит от вашей скорости прохождения. Курс включает порядка 30 заданий.
Оплата – 150$/месяц.
Моя роль – я составитель курса, т.е. составил задачи и сопровождаю менторов.
Регистрация – тут
Подборка node.recipes за сентябрь 2021

Рецепты для #nodejs разработчиков:
➡️ Чем отличаются операционные ошибки от ошибок программиста?
➡️ В чем различие таймеров в Node.js и browser?
➡️ Как обнаружить синхронные операции в Node.js коде?
➡️ Обзор Node.js v16: Что такое corepack и как он работает?
➡️ Что нужно знать об Error stack trace?
➡️ Как выстрелить себе ногу с помощью microservices?
➡️ Обзор Node.js v16: Что нового в npm v7?
👀 Обзор Node.js платформы в 2021

freebies:
🤑Free Oracle Cloud Training and Certificates
🤑30 days of Postman
🤑JetBrains JavaScript Day 2021

Voice Chats:
🎤 About Cloud Development в рамках DOU Tech
🎤 About Culture Fit, в гостях Алексей Мигутский
🎤 About Team Setup, в гостях Виталий Ратушный
🎤 About Development Tools, в гостях Старовойт Андрей
🎤 About Soft Skills, в гостях Виталий Петренко

Актуальные анонсы и проекты с партнерами:
🔗 CFP от FWDays
🔗 Подборка комьюнити от Math.random()
🔗 Hacktoberfest
🔗 my-talks.net – портфолио спикеров
🔗 Запуск Node.js курса совместно с FoxmindEd
Команда @AWS_UG_Ukraine 19 октября проводит AWS Tech Conference.

В программе конференции 6 докладов. Для #nodejs разработчиков я бы выделил доклады Сергея Пугачева об интеграции микросервисов и Игоря Иванюка о создание устойчивых приложений. Формат обоих докладов – паттерны, а значит они будут полезны даже, если вы не используете AWS.

Параллельно с докладами будут идти трек для получения практических навыков. Проводить его будет Константин Поляков в формате hands-on lab.

Участие бесплатное по предварительной регистрации: https://bit.ly/3D6YQJU

#aws #conference
100 Days Of Kubernetes
#worth_seeing

Сегодня у нас в рекомендациях не одно видео, а целый плейлист. Его автор Anais Urlichs делится своим опытом по изучению k8s и подготовки к сдачи CKAD. Сделано это в формате 100DaysOfCloud. Мне этот формат очень заходит, хоть бери и делай свой подобный.

Аниса действительно просто рассказывает об DevOps, ведет ютуб канал и емейл рассылку. Я полностью согласен с ее слоганом You can learn Anything!

Ссылки:
🔗 Плейлист
🔗 Заметки (в видео в формате notion)
🔗 сайт Анисы
The State of Developer Ecosystem 2021

В июле JetBrains опубликовал результаты своего ежегодного опроса. Получилась отличная инфографика The State of Developer Ecosystem 2021. Ее отлично использовать для подтверждения своих утверждений. Вот ряд моих:
– Java и Node.js две основные технологии для создания микросервисов. Причем они могут как конкурировать, так и дополнять друг друга.
– Сколько не рассказывай о GraphQL, gRPC, message bus – все равно будут интегрировать микросервисы через REST.
– Успех распространения технологии определяется качеством ее документации.
– Cредняя зарплата в Украине в 4 раза меньше, чем в США и составляет 2500$/месяц
– JavaScript давно самый популярный язык.
– Если вы еще не освоили React, то учить его поздно. Стоит выучить Vue.
Node.js Development in 2022: trends and techniques
#announcement

На сайте Fwdays появилось описание моего доклада: "Разработка на Node.js в 2022 году: тенденции и приемы". Процитирую:
Задача этого доклада показать новинки экосистемы Node.js. Новые фичи Node.js v16, языковые конструкции JavaScript/TypeScript, набирающие популярность фреймворки и подходы – таков неполный список новинок попавших в этот обзор. Главное в этом обзоре это ответы на вопросы как, когда и главное зачем использовать эти новинки.

Доклад будет обзорным – на широту и целостность, а не на глубину. Подобный я уже делал в 2019 в рамках JSFest. Часть контента уже есть в формате рецептов на канала, часть только будет опубликована – до 27 ноября еще много времени. Буду признателен если вы напишите в комментариях, что вы ожидаете увидеть в докладе. Так же меня можно позвать выступить у вас с этим докладом.