Как работать с Event Emitter в async/await стиле?
#nodejs_api
В 2022 году асинхронных #nodejs код строиться на async/await. Однако важный модуль Event Emitter построен на callback-ах. Начиная с 12.16 версии в нем есть встроенный функционал для упрощения работы с Promise. За это отвечают две функции:
В 16 Node.js добавили options для передачи AbortController.
Упрощенный пример кода демонстрирующий обе функции:
⚠️В пример
Ссылки:
⚙️ Код на runkit
📕 Документация events
👩🍳 Обзор AbortController
#nodejs_api
В 2022 году асинхронных #nodejs код строиться на async/await. Однако важный модуль Event Emitter построен на callback-ах. Начиная с 12.16 версии в нем есть встроенный функционал для упрощения работы с Promise. За это отвечают две функции:
events.on(emitter, eventName[, options]) – возвращает AsyncIterator, который легко итерировать конструкцией for awaitevents.once(emitter, name[, options]) – возвращает Promise, который будет разрешен по событию.В 16 Node.js добавили options для передачи AbortController.
Упрощенный пример кода демонстрирующий обе функции:
const events = require('events');const { setTimeout } = require('timers/promises');const server = require('http').createServer();async function handle(req, res) { await setTimeout(200); res.end('Hello World');}async function bootstrap() { server.listen(8080); await events.once(server, 'listening') for await (const [req, res] of events.on(server, 'request')) { await handle(req, res); }}bootstrap();⚠️В пример
await handle, сделано для демонстрации работы AsyncIterator. В результате такой конструкции HttpServer будет обрабатывать запросы не параллельно, а последовательно. Чтобы это исправить можно убрать await на этой строке.Ссылки:
⚙️ Код на runkit
📕 Документация events
👩🍳 Обзор AbortController
👍18👎1
Подборка книг для изучения JavaScript
#list
Сегодня у нас в рекомендация свежие книги от Axel Rauschmayer. Он ведет блог 2ality.com с обзором новинок в JavaScript. На его сайте exploringjs.com можно прочитать его книги:
📕JavaScript for impatient programmers (ES1–ES2021), книга освещает новые фичи языка включая ES2022. Есть упражнения для закрепления.
📕Deep JavaScript: Theory and techniques (ES1–ES2021) углубление использование языка.
📕Tackling TypeScript: Upgrading from JavaScript альтернатива The TypeScript Handbook для изучения TypeScript.
Другие подборки книг на канале:
- Подборка книг для изучения TypeScript
- Подборка книг для прокачки, когда ты уже Senior
#list
Сегодня у нас в рекомендация свежие книги от Axel Rauschmayer. Он ведет блог 2ality.com с обзором новинок в JavaScript. На его сайте exploringjs.com можно прочитать его книги:
📕JavaScript for impatient programmers (ES1–ES2021), книга освещает новые фичи языка включая ES2022. Есть упражнения для закрепления.
📕Deep JavaScript: Theory and techniques (ES1–ES2021) углубление использование языка.
📕Tackling TypeScript: Upgrading from JavaScript альтернатива The TypeScript Handbook для изучения TypeScript.
Другие подборки книг на канале:
- Подборка книг для изучения TypeScript
- Подборка книг для прокачки, когда ты уже Senior
👍25
Audio
#voice_chat About Conferences с Alexander Makhomet. Александр co-founder в компании Fwdays которые уже более 10 лет проводят tech events в Украине. Также Александр сотрудничает с компанией Upwork на позиции Engineering Lead, и является кофаундером проекта Ergo.Place. В середине чата к нам присоединилась Ирина Божик, CEO Fwdays.
Вопросы:
❓Как организован процесс отбора тем и докладчиков?
❓Отличие организаций онлайн, оффлайн и гибрид конференций?
❓Альтернативные форматы: пубталкс, антиконференции, воркшопы
❓Как организована работа с комьюнити?
Интересны ссылки упомянутые в разговоре:
- Завирусившийся доклад Саши Соловьева в 2013
- Fwdays Tech Talks
Вопросы:
❓Как организован процесс отбора тем и докладчиков?
❓Отличие организаций онлайн, оффлайн и гибрид конференций?
❓Альтернативные форматы: пубталкс, антиконференции, воркшопы
❓Как организована работа с комьюнити?
Интересны ссылки упомянутые в разговоре:
- Завирусившийся доклад Саши Соловьева в 2013
- Fwdays Tech Talks
❤4
Как просто улучшить работу с git?
#git #cli
TL;DR установите git-extras
Я предпочитаю работать с git через командную строку, а не в IDE. Одна из причин прокачка git с помощью external commands, о которых я уже писал. Лучшим набором таких команд является git-extras.
Мои наиболее часто используемые команды:
Начать использовать можно тут.
Рецепты по теме:
- Как автоматизировать работу с git?
- На что влияет environment variable EDITOR?
- Как и что настроить в git?
#git #cli
TL;DR установите git-extras
Я предпочитаю работать с git через командную строку, а не в IDE. Одна из причин прокачка git с помощью external commands, о которых я уже писал. Лучшим набором таких команд является git-extras.
Мои наиболее часто используемые команды:
git undo – отмена последнего коммитаgit undo N – отмена последних N коммитовgit abort – отмена текущего rebase, merge или cherry-pick.git browse – аналог вышеназванного git open. Откроет в браузере страницу репозитория (github, gitlab).git effort --above 5 – узнать какие файлы менялись больше чем в 5 коммитах. Удобно при анализе нового проектаНачать использовать можно тут.
Рецепты по теме:
- Как автоматизировать работу с git?
- На что влияет environment variable EDITOR?
- Как и что настроить в git?
👍32
GitHub Actions
#worth_seeing
Сегодня в рекомендациях несколько видео об GitHub Actions с GitHub Universe 2021.
Я активно использую их на своих проектах и считаю, что это отличный инструмент с очень легким порогом входа.
👀GitHub Actions in action – начальный уровень
👀Advanced GitHub Actions – продвинутое использование
👀Deploying to AWS with GitHub Actions – строим законченный pipeline
👀Empathy at scale: Techniques for user automation on one of the most active repos – как работает с GitHub action TypeScript команда.
👀Все видео с GitHub Universe 2021
#worth_seeing
Сегодня в рекомендациях несколько видео об GitHub Actions с GitHub Universe 2021.
Я активно использую их на своих проектах и считаю, что это отличный инструмент с очень легким порогом входа.
👀GitHub Actions in action – начальный уровень
👀Advanced GitHub Actions – продвинутое использование
👀Deploying to AWS with GitHub Actions – строим законченный pipeline
👀Empathy at scale: Techniques for user automation on one of the most active repos – как работает с GitHub action TypeScript команда.
👀Все видео с GitHub Universe 2021
👍17
How many hats should a DevRel wear?
#worth_seeing
Существует такое понятие как DevRel (Developer Relations). Упрощено говоря это PR в мире разработки. Инфлюенсирами в DevRel принято называть Developer Advocate.
Сегодняшнее видео с конференции DevRelCon 2021. В нем Zan Markan, Developer Advocate из Circle CI разказывает о ролях в DevRel. Видео отлично позволяет понять, в чем же заключаются ежедневные действия DevRel.
Ссылки:
👀Видео
👀Все видео с DevRelCon 2021
👉What is developer relations? от организатора DevRelCon
#worth_seeing
Существует такое понятие как DevRel (Developer Relations). Упрощено говоря это PR в мире разработки. Инфлюенсирами в DevRel принято называть Developer Advocate.
Сегодняшнее видео с конференции DevRelCon 2021. В нем Zan Markan, Developer Advocate из Circle CI разказывает о ролях в DevRel. Видео отлично позволяет понять, в чем же заключаются ежедневные действия DevRel.
Ссылки:
👀Видео
👀Все видео с DevRelCon 2021
👉What is developer relations? от организатора DevRelCon
👍7🔥1
Тонкости работы с npm noscripts
#cli #npm
1️⃣ pre- post- noscripts
Для ежедневной работы JS часто использует автоматизацию с помощью npm noscripts. У них есть pre- post- noscripts, т.е. скрипты автоматически вызваны до или после скрипта. Например, так можно перекомпилить тайпскрипт перед запуском:
Для выключения работы этих скриптов необходимо установить флаг
2️⃣ Использование --
Для добавления аргументов в npm noscript используется --. Например, в проекте есть команда
3️⃣ Работа с PATH
В npm скриптах не нужно прописывать путь к исполняемым файлам, хранимых в
После чего можно запускать установленный npm пакеты как из скриптов. Удобно для редких команд, которые не имеет смысла тащить в npm noscripts.
Рецепты по теме:
– Что такое .npmrc и почему его стоит добавить?
– Как исправить код в node_modules?
#cli #npm
1️⃣ pre- post- noscripts
Для ежедневной работы JS часто использует автоматизацию с помощью npm noscripts. У них есть pre- post- noscripts, т.е. скрипты автоматически вызваны до или после скрипта. Например, так можно перекомпилить тайпскрипт перед запуском:
"prestart": "npm run build". На канале уже был рецепт об postinstall идет в связки с пакетом patch-package.Для выключения работы этих скриптов необходимо установить флаг
ignore-noscripts в .npmrc или командой:npm config set ignore-noscripts true2️⃣ Использование --
Для добавления аргументов в npm noscript используется --. Например, в проекте есть команда
"test": "jest". Команда npm run test -- -t="Example" запустит jest -t="Example", то есть только тесты с названием Example. Это работает только основной команды, но не для pre-/post-.3️⃣ Работа с PATH
В npm скриптах не нужно прописывать путь к исполняемым файлам, хранимых в
./node_modules/.bin. Npm в момент запуска скрипта расширяет переменную PATH. Это идею можно расширить и в другую сторону, то есть сделать:export PATH="$PATH:./node_modules/.bin"После чего можно запускать установленный npm пакеты как из скриптов. Удобно для редких команд, которые не имеет смысла тащить в npm noscripts.
Рецепты по теме:
– Что такое .npmrc и почему его стоит добавить?
– Как исправить код в node_modules?
👍15😱1
Как узнать является ли текущий файл точкой запуска?
#nodejs_api
Точка запуска (entry point) это файл, который указывается в качестве аргумента в команде
Для проверки с CommonJS (стандарт в Node.js) используется
Для ES модулей код выглядит так:
#nodejs_api
Точка запуска (entry point) это файл, который указывается в качестве аргумента в команде
node file_name.js. Зачем знать является ли текущий файл точкой запуска? Чтобы правильно организовывать код. Например, вы можете стартовать web server или экспортировать его для последующего использования в тестах.Для проверки с CommonJS (стандарт в Node.js) используется
require.main или его аналог process.mainModule. Пример, кода:if (require.main === module) { console.log('Entry point');} else { console.log('Not entry point');}Для ES модулей код выглядит так:
import { fileURLToPath } from 'url';if (process.argv[1] === fileURLToPath(import.meta.url)) { console.log('Entry point');} else { console.log('Not entry point');}👍29
Какие инструменты упрощают парное программирование?
#list
Extreme Programming (XP) предлагает использовать парное программирование для передачи знаний. В традиционном подходе это предполагает работу вдвоем за одним компьютером. С расцветом удаленки правила поменялись. Вот список инструментов, которые упрощают возможность вдвоем запрограммировать новую фичу или пофиксить баг.
1️⃣Main trend: ScreenSharing в любом видео звонке. В некоторых программах (Zoom, Slack) можно подчеркивать места на экране. Не хватает возможности набирать текст второму пилоту.
2️⃣Developer-friendly, т.е. интеграция в IDE. Примеры: Code With Me от JetBrains и Live Sharing для VisualCode. Требует использования одной и той же IDE в команде.
3️⃣Classic: TeamViewer – лучший вариант для решения проблем во время поддержки пользователей.
4️⃣Old school: tmux или tmate для того, чтобы поделиться терминалом, в том числе текстовым редактором vim/nano. Отлично подходит DevOps-ам для поиска проблем.
5️⃣The future is here: То к чему идет индустрия это browser-based IDE. Примеры: GitHub Codespaces, AWS Cloud9, GCP Cloud Shell. Пока у них нет возможности поделиться сеансом, но уверен она появиться.
#list
Extreme Programming (XP) предлагает использовать парное программирование для передачи знаний. В традиционном подходе это предполагает работу вдвоем за одним компьютером. С расцветом удаленки правила поменялись. Вот список инструментов, которые упрощают возможность вдвоем запрограммировать новую фичу или пофиксить баг.
1️⃣Main trend: ScreenSharing в любом видео звонке. В некоторых программах (Zoom, Slack) можно подчеркивать места на экране. Не хватает возможности набирать текст второму пилоту.
2️⃣Developer-friendly, т.е. интеграция в IDE. Примеры: Code With Me от JetBrains и Live Sharing для VisualCode. Требует использования одной и той же IDE в команде.
3️⃣Classic: TeamViewer – лучший вариант для решения проблем во время поддержки пользователей.
4️⃣Old school: tmux или tmate для того, чтобы поделиться терминалом, в том числе текстовым редактором vim/nano. Отлично подходит DevOps-ам для поиска проблем.
5️⃣The future is here: То к чему идет индустрия это browser-based IDE. Примеры: GitHub Codespaces, AWS Cloud9, GCP Cloud Shell. Пока у них нет возможности поделиться сеансом, но уверен она появиться.
🔥11👍2
#announcement
Завтра #voice_chat будет About Nest.js. В гостях Михаил Яли, Software Architect в компании Trilon, автор библиотеки nestjsx/crud.
Когда: в четверг, 27 января, в 21:00 по Киеву
Где: https://news.1rj.ru/str/node_recipes?voicechat
Агенда:
– Как связаны Trilon и Nest.js
– Лучшие Nest.js практики
– Обучение Nest.js: с чего начать
– Nest.js экосистема
До встречи в эфире!
Завтра #voice_chat будет About Nest.js. В гостях Михаил Яли, Software Architect в компании Trilon, автор библиотеки nestjsx/crud.
Когда: в четверг, 27 января, в 21:00 по Киеву
Где: https://news.1rj.ru/str/node_recipes?voicechat
Агенда:
– Как связаны Trilon и Nest.js
– Лучшие Nest.js практики
– Обучение Nest.js: с чего начать
– Nest.js экосистема
До встречи в эфире!
🔥35👍1
Что такое RegExp Named Capture Groups?
Регулярные выражения это сложно. Их чтение требует больших когнитивных усилий. Чтобы это упростить созданны Named Capture Groups.
Сравните две регулярки:
1️⃣
2️⃣
Блоки внутри круглых скобок называются capture groups. Во второй регулярке они именованные. Работают они одинаково, но после у второй после вызова exec будет поле groups, смотри картинку или пример на runkit.
Еще именнованные группы можно использовать в replace. Пример:
В eslint-plugin-regexp существует правило regexp/prefer-named-capture-group, которое форсирует использование именнованых груп.
Регулярные выражения это сложно. Их чтение требует больших когнитивных усилий. Чтобы это упростить созданны Named Capture Groups.
Сравните две регулярки:
1️⃣
/(\d{4})-(\d{2})-(\d{2})/2️⃣
/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/Блоки внутри круглых скобок называются capture groups. Во второй регулярке они именованные. Работают они одинаково, но после у второй после вызова exec будет поле groups, смотри картинку или пример на runkit.
Еще именнованные группы можно использовать в replace. Пример:
"prefix-example".replace(/prefix-(?<value>.*)/, '$<value>')В eslint-plugin-regexp существует правило regexp/prefer-named-capture-group, которое форсирует использование именнованых груп.
👍32
В начале 2015 я приехал из Донецка в Киев. В то время я работал фрилансером. План был за месяц подготовиться к переезду в Черногорию: снять деньги, поменять ноут увидеться с друзьями. Один из них задал вопрос, а почему не поменять фриланс на работу в галере. Устав от ежедневного поиска клиентов я поменял удаленку на офисную стабильность и задержался в Киеве на 6 лет. В прошлом году я наконец-то отправился на зимовку в теплые страны. Сейчас у меня идет вторая зимовка в Доминикане.
Если бы жизнь сложилась по моему первоначальному плану, уверен я бы познакомился с Рубеном, чей проект я вам хочу пропиарить. Да это #реклама. Он разработчик, который живет в Черногории больше 7 лет. За это время помощь друзьям с onboarding-ом в эту страну превратилась в бизнес.
Рубен создал в Черногории IT HUB. Миссия Хаба помогать разработчикам и компаниям осваивать Черногорию, предоставить как место и возможность для коллег, куда можно приехать сменить обстановку, отдохнуть или даже релокейтнуться.
Если мне было удобней работать по европейской таймзоне, я бы обязательно воспользовался услугами хаба. Опыт самостоятельной организации зимовки в Доминикане показал, что выгоднее заплатить за опыт деньгами, чем нервничать от собственного незнания и сделанных ошибок.
Узнать подробности:
– @codeforgesHubBot
– hub.codeforges.com
- в Инстаграм https://www.instagram.com/p/CZM0YZzNvPy/
– или задать вопросы в комментариях. Рубен обещал туда заглянуть.
Если бы жизнь сложилась по моему первоначальному плану, уверен я бы познакомился с Рубеном, чей проект я вам хочу пропиарить. Да это #реклама. Он разработчик, который живет в Черногории больше 7 лет. За это время помощь друзьям с onboarding-ом в эту страну превратилась в бизнес.
Рубен создал в Черногории IT HUB. Миссия Хаба помогать разработчикам и компаниям осваивать Черногорию, предоставить как место и возможность для коллег, куда можно приехать сменить обстановку, отдохнуть или даже релокейтнуться.
Если мне было удобней работать по европейской таймзоне, я бы обязательно воспользовался услугами хаба. Опыт самостоятельной организации зимовки в Доминикане показал, что выгоднее заплатить за опыт деньгами, чем нервничать от собственного незнания и сделанных ошибок.
Узнать подробности:
– @codeforgesHubBot
– hub.codeforges.com
- в Инстаграм https://www.instagram.com/p/CZM0YZzNvPy/
– или задать вопросы в комментариях. Рубен обещал туда заглянуть.
👍15❤2
Audio
#voice_chat About Nest.js.
В гостях Михаил Яли, Software Architect в компании Trilon, автор библиотеки nestjsx/crud.
Агенда:
– Как связаны Trilon и Nest.js
– Лучшие Nest.js практики
– Обучение Nest.js: с чего начать
– Nest.js экосистема
Ссылки, о которых говорили во время чата:
- https://github.com/nestjsx/crud
- https://discord.com/invite/nestjs
- https://marmelab.com/react-admin/
- https://refine.dev/
В гостях Михаил Яли, Software Architect в компании Trilon, автор библиотеки nestjsx/crud.
Агенда:
– Как связаны Trilon и Nest.js
– Лучшие Nest.js практики
– Обучение Nest.js: с чего начать
– Nest.js экосистема
Ссылки, о которых говорили во время чата:
- https://github.com/nestjsx/crud
- https://discord.com/invite/nestjs
- https://marmelab.com/react-admin/
- https://refine.dev/
👍18🔥9
Топ-5 заблуждений об работе JavaScript
#nodejs_api
На календаре пятница, а значит пора сбавить градус практичности. Сегодня поделюсь "перлам" с собеседований. Цель поста – ликвидация безграмотность.
👎Все логические операторы (&&, ||, !) возвращают булевы значения.
Вообще-то только ! возвращает Boolean.
Вопрос для выявления заблуждения, что будет выведено:
👎Расчет возвращаемого Promise-ом значения будет запущен при await.
Нет, он будет запущен в момент создания, т.е. как только мы создали Promise мы сразу запустили цепочку (promise chain). Где вы ставите await, и ставите ли, не имеет значения.
👎Все аргументы в функциях работают одинаково.
Как и в других языках программирования примитивные и ссылочные типы ведут себя по разному.
Вопрос для выявления заблуждения, что плохо в коде:
👎Обработка событий происходит асинхронно.
Ошибка характерна и для Node.js с Event Emitter, и для FE разработчиков с Browser Events. Event handler-ы работают синхронно, причем их порядок вызова зависит от порядка добавления.
👎JavaScript обладает идеальной точностью арифметики.
Уже столько раз писали, о том что
#nodejs_api
На календаре пятница, а значит пора сбавить градус практичности. Сегодня поделюсь "перлам" с собеседований. Цель поста – ликвидация безграмотность.
👎Все логические операторы (&&, ||, !) возвращают булевы значения.
Вообще-то только ! возвращает Boolean.
Вопрос для выявления заблуждения, что будет выведено:
console.log('0' && 3)👎Расчет возвращаемого Promise-ом значения будет запущен при await.
Нет, он будет запущен в момент создания, т.е. как только мы создали Promise мы сразу запустили цепочку (promise chain). Где вы ставите await, и ставите ли, не имеет значения.
👎Все аргументы в функциях работают одинаково.
Как и в других языках программирования примитивные и ссылочные типы ведут себя по разному.
Вопрос для выявления заблуждения, что плохо в коде:
function getTomorrow(d) { d.setDate(d.getDate() + 1); return d;}👎Обработка событий происходит асинхронно.
Ошибка характерна и для Node.js с Event Emitter, и для FE разработчиков с Browser Events. Event handler-ы работают синхронно, причем их порядок вызова зависит от порядка добавления.
👎JavaScript обладает идеальной точностью арифметики.
Уже столько раз писали, о том что
0.1 + 0.2 == 0.3 это false, что многие это зазубрили. Однако, об этом забывают в доменах, где ошибка округления критична (финансы и т.п.). В таких случаях стоит использовать BigInt или подобные решения.👍19🔥19
Chrome 98 - What’s New in DevTools
#worth_seeing
1 февраля будет следующий релиз Chrome. В нем будет много обновлений в инструментах разработчика. Чтобы быть в курсе предлагаю посмотреть 6 минутное видео или почитать текстовое описание.
Большинство новшеств орентированы на фронтенд разработку. Для #nodejs и fullstack разработчиков будут интересны:
👉 Back/Forward cache tab, чтобы убедиться что сервер отдает правильные заголовки
👉 связка document.designMode + Changes tab, чтобы отредактировать прямо в браузере и скопировать в исходный код.
Ссылки:
👀Видео
📕Текстовая версия
#worth_seeing
1 февраля будет следующий релиз Chrome. В нем будет много обновлений в инструментах разработчика. Чтобы быть в курсе предлагаю посмотреть 6 минутное видео или почитать текстовое описание.
Большинство новшеств орентированы на фронтенд разработку. Для #nodejs и fullstack разработчиков будут интересны:
👉 Back/Forward cache tab, чтобы убедиться что сервер отдает правильные заголовки
👉 связка document.designMode + Changes tab, чтобы отредактировать прямо в браузере и скопировать в исходный код.
Ссылки:
👀Видео
📕Текстовая версия
🔥11👍2❤1
What’s Next for the GraphQL Spec?
#worth_seeing #graphql
Сегодня в рекомендациях видео с GraphQL Summit - November 2021. Из всех видео с конференции я выбрал именно его по следующим причинам:
– Объяснение истории развития спецификации и текущего процесса ее обновления.
– Новинки в спецификации за октябрь 2021
– Для GraphQL cпецификация особенно важна, так как реализация клиентов и серверов делают на многих языках и платформах.
– Один из докладчиков Иван Гончаров, core maintainer graphql-js.
Ссылки
👀Видео
📕Спецификация
👉Полный плейлист GraphQL Summit - November 2021
#worth_seeing #graphql
Сегодня в рекомендациях видео с GraphQL Summit - November 2021. Из всех видео с конференции я выбрал именно его по следующим причинам:
– Объяснение истории развития спецификации и текущего процесса ее обновления.
– Новинки в спецификации за октябрь 2021
– Для GraphQL cпецификация особенно важна, так как реализация клиентов и серверов делают на многих языках и платформах.
– Один из докладчиков Иван Гончаров, core maintainer graphql-js.
Ссылки
👀Видео
📕Спецификация
👉Полный плейлист GraphQL Summit - November 2021
👍3
List of 1000 JavaScript Interview Questions
#list
Сегодня в рекомендациях большая подборка вопросов для JS-интервью с ответами. Список содержит как открытые вопросы, так и тесты на понимания работы кода. Некоторые вопросы морально устарелы, но в целом репозиторий можно рекомендовать для подготовки к собеседованию на JS позицию.
#list
Сегодня в рекомендациях большая подборка вопросов для JS-интервью с ответами. Список содержит как открытые вопросы, так и тесты на понимания работы кода. Некоторые вопросы морально устарелы, но в целом репозиторий можно рекомендовать для подготовки к собеседованию на JS позицию.
GitHub
GitHub - sudheerj/javanoscript-interview-questions: List of 1000 JavaScript Interview Questions
List of 1000 JavaScript Interview Questions. Contribute to sudheerj/javanoscript-interview-questions development by creating an account on GitHub.
👍28
Подборка node.recipes за январь 2022
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Что такое WICG?
➡️ Как TC39 предложения внедряются в TypeScript?
➡️ 15 Factor App
👉 Больше 100 share: Какие вопросы задать, чтобы проверить понимание Promise/async/await?
➡️ oclif.io – Open CLI Framework
➡️ Когда и как использовать navigator.sendBeacon?
➡️ 2021 JavaScript Rising Stars.
➡️ Как использовать assert для улучшения читабельности кода?
➡️ Как запустить Recorder в Chrome?
👉 Больше 100 share: Подборка книг для изучения TypeScript
➡️ Обновление Open Machine Learning Course
➡️ Как отследить работу Garbage Collector?
➡️ Как работать с Event Emitter в async/await стиле?
➡️ Подборка книг для изучения JavaScript
➡️ Как просто улучшить работу с git?
➡️ Тонкости работы с npm noscripts
➡️ Как узнать является ли текущий файл точкой запуска?
➡️ Какие инструменты упрощают парное программирование?
➡️ Что такое RegExp Named Capture Groups?
👉Больше 100 комментариев: Топ-5 заблуждений об работе JavaScript
➡️ List of 1000 JavaScript Interview Questions
Стоит посмотреть:
👀Road to production
👀Application integration patterns for microservices
👀Advanced TypeScript Playlist by Basarat
👀Create an Application Backend in Clicks with the Amplify Admin UI
👀llhttp - new HTTP 1.1 parser for Node.js
👀Testing Pyramid Makes Little Sense, What We Can Use Instead
👀GitHub Actions с GitHub Universe 2021
👀How many hats should a DevRel wear?
👀Chrome 98 - What’s New in DevTools
👀What’s Next for the GraphQL Spec?
Стоит послушать или прошедшие Voice chat:
🎤About Best Practices, в гостях Алексей Бобырь
🎤About Software Engineering, в гостях Тимуром Шемсединовым
🎤About Conferences, с Александр Макхомед и Ирина Божик
🎤About Nest.js, с Михаилом Яли
Анонсы конференции:
👍Node Congress
👍TheJam.dev
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Что такое WICG?
➡️ Как TC39 предложения внедряются в TypeScript?
➡️ 15 Factor App
👉 Больше 100 share: Какие вопросы задать, чтобы проверить понимание Promise/async/await?
➡️ oclif.io – Open CLI Framework
➡️ Когда и как использовать navigator.sendBeacon?
➡️ 2021 JavaScript Rising Stars.
➡️ Как использовать assert для улучшения читабельности кода?
➡️ Как запустить Recorder в Chrome?
👉 Больше 100 share: Подборка книг для изучения TypeScript
➡️ Обновление Open Machine Learning Course
➡️ Как отследить работу Garbage Collector?
➡️ Как работать с Event Emitter в async/await стиле?
➡️ Подборка книг для изучения JavaScript
➡️ Как просто улучшить работу с git?
➡️ Тонкости работы с npm noscripts
➡️ Как узнать является ли текущий файл точкой запуска?
➡️ Какие инструменты упрощают парное программирование?
➡️ Что такое RegExp Named Capture Groups?
👉Больше 100 комментариев: Топ-5 заблуждений об работе JavaScript
➡️ List of 1000 JavaScript Interview Questions
Стоит посмотреть:
👀Road to production
👀Application integration patterns for microservices
👀Advanced TypeScript Playlist by Basarat
👀Create an Application Backend in Clicks with the Amplify Admin UI
👀llhttp - new HTTP 1.1 parser for Node.js
👀Testing Pyramid Makes Little Sense, What We Can Use Instead
👀GitHub Actions с GitHub Universe 2021
👀How many hats should a DevRel wear?
👀Chrome 98 - What’s New in DevTools
👀What’s Next for the GraphQL Spec?
Стоит послушать или прошедшие Voice chat:
🎤About Best Practices, в гостях Алексей Бобырь
🎤About Software Engineering, в гостях Тимуром Шемсединовым
🎤About Conferences, с Александр Макхомед и Ирина Божик
🎤About Nest.js, с Михаилом Яли
Анонсы конференции:
👍Node Congress
👍TheJam.dev
👍33🔥5
В конце сентября я писал о том, что сделал для Foxminded курс по #nodejs. Подход к составлению курсов в компании – фокус на практику без разжевывания теории, которую гуглят только когда больно. Курс окончил бета тестирование и обзавелся лендингом.
После составления курса я сопровождаю менторов и даже вел пару студентов. Отзыв одного из них:
Вообще сейчас твой курс реально выглядит как одна из лучших инвестиций в самообразование за долгое время — разумная порция боли и хорошее ощущение прогресса 🔥
Курс ориентирован на новичков в Node.js. Идеально подходит для Frontend разработчиков, которые хотят стать FullStack.
👉Запись на курс тут
После составления курса я сопровождаю менторов и даже вел пару студентов. Отзыв одного из них:
Вообще сейчас твой курс реально выглядит как одна из лучших инвестиций в самообразование за долгое время — разумная порция боли и хорошее ощущение прогресса 🔥
Курс ориентирован на новичков в Node.js. Идеально подходит для Frontend разработчиков, которые хотят стать FullStack.
👉Запись на курс тут