llhttp - new HTTP 1.1 parser for Node.js
#worth_seeing #typenoscript
На этой неделе в войс чате с Тимуром мы поднимали вопрос о системном программирование, т.е. создание инструментов для создания продуктов. Сегодняшний доклад как раз об этом.
В докладе Федор рассказывает как и зачем был переписан http_parser. Произошло это в 2019. Кодовая база
Ссылки:
👀 Видео
📕 Сайт
⚙️ GitHub
#worth_seeing #typenoscript
На этой неделе в войс чате с Тимуром мы поднимали вопрос о системном программирование, т.е. создание инструментов для создания продуктов. Сегодняшний доклад как раз об этом.
В докладе Федор рассказывает как и зачем был переписан http_parser. Произошло это в 2019. Кодовая база
http_parser на чистом С перестала быть поддерживаемой. Ее переписали на С + TypeScript и назвали llparse. Его исходный код стоит изучить с целью улучшения как своих навыков работы с TypeScript, так и понимания принципов работы http в целом.Ссылки:
👀 Видео
📕 Сайт
⚙️ GitHub
👍19
Testing Pyramid Makes Little Sense, What We Can Use Instead
#worth_seeing
Сегодняшнее видео предлагает переосмыслить концепт пирамиды тестирования. Глеб Бахмутов и Роман Сандлер разбирают различные подходы в тестирования JS проектов. Они вводят матрице Compromise VS Effort, предлагают список вопросов, которые стоит задать себе и команде для выбора подходов.
Для меня это самое полезное видео с ноябрського TestJsSummit 2021. Возможно, для вас будет полезнее другой доклад, поэтому прикрепляю весь плейлист. Он стоит того, чтобы уделить ему вечер.
Ссылки
👀Видео
📕Слайды
🔗Сайт конференции
👉Плелист всех видео с конференции
#worth_seeing
Сегодняшнее видео предлагает переосмыслить концепт пирамиды тестирования. Глеб Бахмутов и Роман Сандлер разбирают различные подходы в тестирования JS проектов. Они вводят матрице Compromise VS Effort, предлагают список вопросов, которые стоит задать себе и команде для выбора подходов.
Для меня это самое полезное видео с ноябрського TestJsSummit 2021. Возможно, для вас будет полезнее другой доклад, поэтому прикрепляю весь плейлист. Он стоит того, чтобы уделить ему вечер.
Ссылки
👀Видео
📕Слайды
🔗Сайт конференции
👉Плелист всех видео с конференции
🔥11👍5
26-27 января состоится #conference TheJam.dev 2022. Это двух дневная бесплатная онлайн конференция посвященная JAM стэку.
👉Регистрация
JavaScript разработчику нужно знать об этом стэке, не зря первая буква в JAM это javanoscript. Node.js разработчику будет полезно иметь опыт работы с какой-либо Headless CMS.
Ссылки в тему:
🔗 jamstack.org
🔗 jamstack.wtf
👉Регистрация
JavaScript разработчику нужно знать об этом стэке, не зря первая буква в JAM это javanoscript. Node.js разработчику будет полезно иметь опыт работы с какой-либо Headless CMS.
Ссылки в тему:
🔗 jamstack.org
🔗 jamstack.wtf
👍2
Обновление Open Machine Learning Course
Yorko (Юрий Кашницкий) зарелизил обновленную версию mlcourse.ai. Раньше он проходился в когортах, теперь его можно пройти в self-paced режиме. Я сам проходил этот курс. Знания из курса помогли построение процессов с Data Science инженерами.
Почему я его рекомендую для ознакомления #nodejs разработчикам? Во-первых, для прокачки эрудиции и T-shaped экспертизы. Во-вторых, все чаще API должны забирать данные из Machine Learning моделей, а значит понимание как они работают упрощают интеграцию.
Рецепты по теме:
– Как технологии будут востребованы для Node.js разработки в 2022?
Yorko (Юрий Кашницкий) зарелизил обновленную версию mlcourse.ai. Раньше он проходился в когортах, теперь его можно пройти в self-paced режиме. Я сам проходил этот курс. Знания из курса помогли построение процессов с Data Science инженерами.
Почему я его рекомендую для ознакомления #nodejs разработчикам? Во-первых, для прокачки эрудиции и T-shaped экспертизы. Во-вторых, все чаще API должны забирать данные из Machine Learning моделей, а значит понимание как они работают упрощают интеграцию.
Рецепты по теме:
– Как технологии будут востребованы для Node.js разработки в 2022?
🔥8👍2
Читатели из Украины знают об зарплатной аналитики DOU. Ее сегодня обновили по итогам декабрьского опроса.
🔗 Ссылка: https://dou.ua/lenta/articles/salary-report-devs-winter-2022/
Вопрос к читателям из других стран: РФ, Европа и т.д. А где вы смотрите аналитику зарплат?
🔗 Ссылка: https://dou.ua/lenta/articles/salary-report-devs-winter-2022/
Вопрос к читателям из других стран: РФ, Европа и т.д. А где вы смотрите аналитику зарплат?
👍6
Как отследить работу Garbage Collector?
#web_api #nodejs_api
Плохая организация JavaScript кода может привести к утечке памяти. Для отслеживания утечки ресурсов в ES2021 появился FinalizationRegistry. Так можно вызвать callback после отработки Garbage Collector по указанному ресурсу:
⚠️Пример максимально упрощен. При запуске без массового создания новых объектов ждать сборки мусора придется долго.
Авторы не рекомендует использовать для построение бизнес логики, реализация сборки мусора, зависит от реализации любого конкретного движка JavaScript.
Работает в #nodejs 14.6.0 и новее. Для работы в TypeScript необходимо включить es2021.weakref.
Ссылки:
🔗 пример для запуска в браузере
🔗 MDN
🔗 TC39
🔗 Can I use
#web_api #nodejs_api
Плохая организация JavaScript кода может привести к утечке памяти. Для отслеживания утечки ресурсов в ES2021 появился FinalizationRegistry. Так можно вызвать callback после отработки Garbage Collector по указанному ресурсу:
const registry = new FinalizationRegistry((startTime) => { const delay = ((Date.now() - startTime) / 1000).toFixed(1); console.log(`foo was garbage collected after ${delay}s`);});let foo = {};registry.register(foo, Date.now());foo = undefined; // Clear strong reference⚠️Пример максимально упрощен. При запуске без массового создания новых объектов ждать сборки мусора придется долго.
Авторы не рекомендует использовать для построение бизнес логики, реализация сборки мусора, зависит от реализации любого конкретного движка JavaScript.
Работает в #nodejs 14.6.0 и новее. Для работы в TypeScript необходимо включить es2021.weakref.
Ссылки:
🔗 пример для запуска в браузере
🔗 MDN
🔗 TC39
🔗 Can I use
🔥6
Как работать с 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