Многопоточность с использованием рабочих потоков в Node.js
Прелесть Node заключается в том, что, хотя основной цикл событий выполняется в одном потоке, некоторые трудоемкие задачи автоматически выгружаются в отдельный рабочий пул. К ним относятся DNS и файловая система (за исключением fs.FSWatcher()), а также криптографический и Zlib API, требующие большого количества операций ввода-вывода. Все они имеют синхронный вариант, который будет блокировать основной поток.
https://blog.appsignal.com/2023/07/05/multithreading-with-worker-threads-in-nodejs.html
✍️ @nodejs_lib
Прелесть Node заключается в том, что, хотя основной цикл событий выполняется в одном потоке, некоторые трудоемкие задачи автоматически выгружаются в отдельный рабочий пул. К ним относятся DNS и файловая система (за исключением fs.FSWatcher()), а также криптографический и Zlib API, требующие большого количества операций ввода-вывода. Все они имеют синхронный вариант, который будет блокировать основной поток.
https://blog.appsignal.com/2023/07/05/multithreading-with-worker-threads-in-nodejs.html
✍️ @nodejs_lib
👍1
✅ Список лучших практик Node.js
https://github.com/goldbergyoni/nodebestpractices/blob/master/README.russian.md
✍️ @nodejs_lib
https://github.com/goldbergyoni/nodebestpractices/blob/master/README.russian.md
✍️ @nodejs_lib
👍2
Используйте кластеры Node.js для более эффективного использования процессора
Node.js является однопоточным, то есть он может использовать только одно ядро процессора. Однако большинство современных серверов имеют несколько ядер. Чтобы в полной мере использовать возможности центрального процессора, можно использовать кластеры Node.js, которые позволяют приложению работать на нескольких ядрах процессора одновременно. Кластеры порождают несколько рабочих процессов, каждый из которых работает на отдельном ядре, и они используют один и тот же порт сервера.
Для создания кластера вам понадобится встроенный модуль cluster. Приведем пример:
Использование кластеров позволяет равномерно распределить рабочую нагрузку и повысить общую производительность приложения.
✍️ @nodejs_lib
Node.js является однопоточным, то есть он может использовать только одно ядро процессора. Однако большинство современных серверов имеют несколько ядер. Чтобы в полной мере использовать возможности центрального процессора, можно использовать кластеры Node.js, которые позволяют приложению работать на нескольких ядрах процессора одновременно. Кластеры порождают несколько рабочих процессов, каждый из которых работает на отдельном ядре, и они используют один и тот же порт сервера.
Для создания кластера вам понадобится встроенный модуль cluster. Приведем пример:
Использование кластеров позволяет равномерно распределить рабочую нагрузку и повысить общую производительность приложения.
✍️ @nodejs_lib
👍5
NodeJS
От трёх монолитов до 30 микросервисов за 30 минут | Meta/conf
Неожиданное появление ES Modules в Node.JS | Meta/conf
Круглый стол - Организация команды в условиях кризиса!
Монолит, микросервис, Андрей Мелихов - Node.js
Контекстно зависимые топологии (на JavaScript), Виктор Вершанский - Node.js
источник
✍️ @nodejs_lib
От трёх монолитов до 30 микросервисов за 30 минут | Meta/conf
Неожиданное появление ES Modules в Node.JS | Meta/conf
Круглый стол - Организация команды в условиях кризиса!
Монолит, микросервис, Андрей Мелихов - Node.js
Контекстно зависимые топологии (на JavaScript), Виктор Вершанский - Node.js
источник
✍️ @nodejs_lib
👍2
Сложность написания эффективного NodeJS Docker image
Docker - это бесценный инструмент для управления контейнерами, но разобраться в его внутреннем устройстве может быть непросто, особенно для новичков. Хотя современные хостинговые платформы, такие как Vercel и Netlify, часто избавляют от необходимости писать Docker-файлы для NodeJS-процессов, понимание оптимизации Docker становится критически важным при работе с инфраструктурой. Добившись оптимальной эффективности, вы сможете сэкономить время и деньги в долгосрочной перспективе.
https://www.specfy.io/blog/1-efficient-dockerfile-nodejs-in-7-steps
✍️ @nodejs_lib
Docker - это бесценный инструмент для управления контейнерами, но разобраться в его внутреннем устройстве может быть непросто, особенно для новичков. Хотя современные хостинговые платформы, такие как Vercel и Netlify, часто избавляют от необходимости писать Docker-файлы для NodeJS-процессов, понимание оптимизации Docker становится критически важным при работе с инфраструктурой. Добившись оптимальной эффективности, вы сможете сэкономить время и деньги в долгосрочной перспективе.
https://www.specfy.io/blog/1-efficient-dockerfile-nodejs-in-7-steps
✍️ @nodejs_lib
👍1
Проектирование масштабируемого бэкенда в Node.js
Будучи разработчиком, поддерживающим растущий бизнес, вы, скорее всего, будете много времени уделять размышлениям о масштабировании. Мы живем в прекрасное время для решения проблем масштабирования. Компьютеры настолько быстры и производительны, что многие решения, которые вы принимаете при написании внутренних систем, не оказывают заметного влияния на производительность (пока ваше приложение не достигнет абсолютно огромных масштабов). Если бы это было не так, мы бы все писали веб-серверы на языке C.
В этой статье мы рассмотрим три проблемы масштабирования в вымышленной бэкенд-системе Node.js, написанной в виде пользовательских историй. Несмотря на то что система вымышленная, эти проблемы очень похожи на те, с которыми я сталкивался в своей карьере, и, возможно, они знакомы и вам.
Мы обсудим полезные инструменты для диагностики основных причин проблем масштабирования, а также методы устранения узких мест и точек отказа.
https://blog.appsignal.com/2023/06/07/designing-a-scalable-backend-in-nodejs.html
✍️ @nodejs_lib
Будучи разработчиком, поддерживающим растущий бизнес, вы, скорее всего, будете много времени уделять размышлениям о масштабировании. Мы живем в прекрасное время для решения проблем масштабирования. Компьютеры настолько быстры и производительны, что многие решения, которые вы принимаете при написании внутренних систем, не оказывают заметного влияния на производительность (пока ваше приложение не достигнет абсолютно огромных масштабов). Если бы это было не так, мы бы все писали веб-серверы на языке C.
В этой статье мы рассмотрим три проблемы масштабирования в вымышленной бэкенд-системе Node.js, написанной в виде пользовательских историй. Несмотря на то что система вымышленная, эти проблемы очень похожи на те, с которыми я сталкивался в своей карьере, и, возможно, они знакомы и вам.
Мы обсудим полезные инструменты для диагностики основных причин проблем масштабирования, а также методы устранения узких мест и точек отказа.
https://blog.appsignal.com/2023/06/07/designing-a-scalable-backend-in-nodejs.html
✍️ @nodejs_lib
👍5
Media is too big
VIEW IN TELEGRAM
🚀 Node.js в 2023 🧑💻 Введение в технологию ✨
0:00 план лекции
0:56 место node.js в современном вебе
2:03 что такое node.js
7:37 как работает node.js
11:42 event-loop phases
16:12 почему node.js
17:45 основные идеи node.js
28:58 преимущества node.js 2928 недостатки node.js
30:30 начало работы с node.js
33:05 приложение на node.js
44:50 встроенный в node.js API
41:18 менеджер пакетов NPM
51:09 производительность
53:27 память
55:29 сферы применения node.js
58:50 для чего часто применяют node.js
1:00:30 для чего node.js применяют реже
1:01:10 для чего node.js применяется совсем редко
1:02:02 для чего node.js плохо подходит
1:03:06 какие версии node.js актуальны
1:06:12 что нового
1:09:22 проблемы node.js
1:20:21 что делать?
1:23:23 как выбирать зависимости?
1:24:53 недостатки культуры разработки
1:25:44 уязвимости
1:27:30 как писать на ноде качественно
1:28:56 enterprise development requirements
1:29:50 как понять что что-то пошло не так
1:30:56 ссылки на лекции, доклады и остальные материалы
источник
✍️ @nodejs_lib
0:00 план лекции
0:56 место node.js в современном вебе
2:03 что такое node.js
7:37 как работает node.js
11:42 event-loop phases
16:12 почему node.js
17:45 основные идеи node.js
28:58 преимущества node.js 2928 недостатки node.js
30:30 начало работы с node.js
33:05 приложение на node.js
44:50 встроенный в node.js API
41:18 менеджер пакетов NPM
51:09 производительность
53:27 память
55:29 сферы применения node.js
58:50 для чего часто применяют node.js
1:00:30 для чего node.js применяют реже
1:01:10 для чего node.js применяется совсем редко
1:02:02 для чего node.js плохо подходит
1:03:06 какие версии node.js актуальны
1:06:12 что нового
1:09:22 проблемы node.js
1:20:21 что делать?
1:23:23 как выбирать зависимости?
1:24:53 недостатки культуры разработки
1:25:44 уязвимости
1:27:30 как писать на ноде качественно
1:28:56 enterprise development requirements
1:29:50 как понять что что-то пошло не так
1:30:56 ссылки на лекции, доклады и остальные материалы
источник
✍️ @nodejs_lib
👍4🤡1
Отслеживание ошибок в приложении Node.js
Ошибки в продакшне замедляют скорость и часто влияют на всю траекторию дорожной карты релизов. Это помогает, если у вас есть надежная настройка отслеживания ошибок, на которую можно положиться.
В этой статье мы рассмотрим, как сделать отслеживание ошибок в приложении Node.js более удобным, автоматизированным и безопасным.
https://blog.appsignal.com/2023/08/30/tracking-errors-in-a-nodejs-application.html
✍️ @nodejs_lib
Ошибки в продакшне замедляют скорость и часто влияют на всю траекторию дорожной карты релизов. Это помогает, если у вас есть надежная настройка отслеживания ошибок, на которую можно положиться.
В этой статье мы рассмотрим, как сделать отслеживание ошибок в приложении Node.js более удобным, автоматизированным и безопасным.
https://blog.appsignal.com/2023/08/30/tracking-errors-in-a-nodejs-application.html
✍️ @nodejs_lib
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Пишем key-value storage на пакетах ping'а или храним данные между облаками
Как-то давно я просматривал опции для команды ping и обратил внимание, что можно задавать размер ICMP пакета. "Хм", — подумал я: "Можно же сложить в сам пакет какую-то полезную нагрузку". Эта идея время от времени всплывала у меня в голове, но что именно можно хранить в пакете ICMP придумать не удавалось. Однако, недавно пришло понимание, что если хранить данные в ICMP пакете, то они не будут занимать место в оперативной памяти! То есть можно сделать key-value хранилище, где все данные будут храниться внутри сети.
https://habr.com/ru/articles/762390/
✍️ @nodejs_lib
Как-то давно я просматривал опции для команды ping и обратил внимание, что можно задавать размер ICMP пакета. "Хм", — подумал я: "Можно же сложить в сам пакет какую-то полезную нагрузку". Эта идея время от времени всплывала у меня в голове, но что именно можно хранить в пакете ICMP придумать не удавалось. Однако, недавно пришло понимание, что если хранить данные в ICMP пакете, то они не будут занимать место в оперативной памяти! То есть можно сделать key-value хранилище, где все данные будут храниться внутри сети.
https://habr.com/ru/articles/762390/
✍️ @nodejs_lib
😁2👍1
Observing Node.js processes with eBPF
https://opeonikute.dev/posts/observing-node-with-ebpf
✍️ @nodejs_lib
https://opeonikute.dev/posts/observing-node-with-ebpf
✍️ @nodejs_lib
👍1
Frontend online meetup - 11/10
✔️ CSS in JS или самая противоречивая техника стилизации веба — Ильдар Муллахметов, Авито Тех
В своем докладе я расскажу почему CSS in JS библиотеки вызывают так много противоречий среди frontend разработчиков. хочу рассмотреть влияние на производительность, поддерживаемость кода, девелопер экспириенс. Рассмотрю более подробно styled-components и сравню блоки кода со стилями между styled, tailwind, module. Рассмотрю как браузер обрабатывает styled. Продемонстрирую как влияет на семантику, работает с props и theme. Добавлю к сравнению Linaria и Astroturf, как самые быстрорастущие CSS in JS библиотеки.
✔️ Что такое Sentry и почему без него тяжело — Кирилл Логачев, Level.Travel
Доклад нацелен на раскрытие такого полезного инструмента, как Sentry. Из данного доклада слушатель узнает, как правильно настраивать, использовать и мониторить Sentry, что поможет уменьшить количество ошибок в продакшене, также данный сервис поможет определять и быстро устранять просочившиеся с релизом ошибки.
✔️ По ту сторону WebView — Максим Лавренюк, UZUM TECHNOLOGIES
Я бы хотел поделится некоторыми подходами и проблемами на примере встраивания сервиса доставки еды Uzum Tezkor в супер приложение Uzum Market. Я расскажу про то, что следует сделать в первую очередь при старте интеграции, как подружить нативные компоненты с вебом, как спрятать бесшовную авторизацию, а так же о чем попросить мобильных разработчиков, чтобы облегчить себе жизнь.
✔️ Web3 для фронтенд-разработчика — Назим Гафаров, Based.link
Доклады вокруг web3 обычно концентрируются вокруг рассказа об языках программирования для смарт-контрактов, которые больше интересны бэкенд-разработчикам. В своем докладе я расскажу о том, какие возможности предоставляет web3 именно для фронтенд-разработчика.
➖➖➖
🗓 11 октября в 19:00
✅ Регистрация - участие бесплатно!
🌐 Наш телеграам канал с анонсами митапов!
В своем докладе я расскажу почему CSS in JS библиотеки вызывают так много противоречий среди frontend разработчиков. хочу рассмотреть влияние на производительность, поддерживаемость кода, девелопер экспириенс. Рассмотрю более подробно styled-components и сравню блоки кода со стилями между styled, tailwind, module. Рассмотрю как браузер обрабатывает styled. Продемонстрирую как влияет на семантику, работает с props и theme. Добавлю к сравнению Linaria и Astroturf, как самые быстрорастущие CSS in JS библиотеки.
Доклад нацелен на раскрытие такого полезного инструмента, как Sentry. Из данного доклада слушатель узнает, как правильно настраивать, использовать и мониторить Sentry, что поможет уменьшить количество ошибок в продакшене, также данный сервис поможет определять и быстро устранять просочившиеся с релизом ошибки.
Я бы хотел поделится некоторыми подходами и проблемами на примере встраивания сервиса доставки еды Uzum Tezkor в супер приложение Uzum Market. Я расскажу про то, что следует сделать в первую очередь при старте интеграции, как подружить нативные компоненты с вебом, как спрятать бесшовную авторизацию, а так же о чем попросить мобильных разработчиков, чтобы облегчить себе жизнь.
Доклады вокруг web3 обычно концентрируются вокруг рассказа об языках программирования для смарт-контрактов, которые больше интересны бэкенд-разработчикам. В своем докладе я расскажу о том, какие возможности предоставляет web3 именно для фронтенд-разработчика.
➖➖➖
🗓 11 октября в 19:00
✅ Регистрация - участие бесплатно!
Please open Telegram to view this post
VIEW IN TELEGRAM
Состояние производительности Node.js в 2023
На дворе 2023 год, и мы выпустили Node.js v20. Это значительное достижение, и цель данной статьи - с помощью научных цифр оценить состояние производительности Node.js.
Все результаты бенчмарков содержат воспроизводимый пример и сведения об аппаратном обеспечении. Чтобы уменьшить шум для обычных читателей, воспроизводимые шаги будут свернуты в начале всех разделов.
Целью данной статьи является сравнительный анализ различных версий Node.js. В ней отмечаются улучшения и недостатки, а также дается представление о причинах этих изменений, при этом не проводится никаких сравнений с другими средами исполнения JavaScript.
https://blog.rafaelgss.dev/state-of-nodejs-performance-2023
✍️ @nodejs_lib
На дворе 2023 год, и мы выпустили Node.js v20. Это значительное достижение, и цель данной статьи - с помощью научных цифр оценить состояние производительности Node.js.
Все результаты бенчмарков содержат воспроизводимый пример и сведения об аппаратном обеспечении. Чтобы уменьшить шум для обычных читателей, воспроизводимые шаги будут свернуты в начале всех разделов.
Целью данной статьи является сравнительный анализ различных версий Node.js. В ней отмечаются улучшения и недостатки, а также дается представление о причинах этих изменений, при этом не проводится никаких сравнений с другими средами исполнения JavaScript.
https://blog.rafaelgss.dev/state-of-nodejs-performance-2023
✍️ @nodejs_lib
👍1
Обеспечение безопасности приложений Node.js путем анализа примеров внедрения команд в реальном мире
В огромном цифровом пространстве веб-приложений и онлайн-сервисов безопасность имеет первостепенное значение. Разработчики и организации вкладывают значительные средства в защиту своих систем от потенциальных угроз, однако постоянно развивающийся характер кибер-атак представляет собой постоянную проблему. Одной из особо опасных и повторяющихся уязвимостей, из-за которой в последние годы было раскрыто множество CVE для пакетов npm в экосистеме Node.js, является командная инъекция (Command Injection).
https://www.nodejs-security.com/blog/securing-your-nodejs-apps-by-analyzing-real-world-command-injection-examples
✍️ @nodejs_lib
В огромном цифровом пространстве веб-приложений и онлайн-сервисов безопасность имеет первостепенное значение. Разработчики и организации вкладывают значительные средства в защиту своих систем от потенциальных угроз, однако постоянно развивающийся характер кибер-атак представляет собой постоянную проблему. Одной из особо опасных и повторяющихся уязвимостей, из-за которой в последние годы было раскрыто множество CVE для пакетов npm в экосистеме Node.js, является командная инъекция (Command Injection).
https://www.nodejs-security.com/blog/securing-your-nodejs-apps-by-analyzing-real-world-command-injection-examples
✍️ @nodejs_lib
👍2
Передача данных из Angular в NodeJS с помощью NgForms
https://www.youtube.com/watch?v=E-zbp7icX5M
✍️ @nodejs_lib
https://www.youtube.com/watch?v=E-zbp7icX5M
✍️ @nodejs_lib
YouTube
Sending data from Angular to NodeJS with NgForms
A simple step-by-step guide to send data from Angular to NodeJS with the help of NgForms.
Here is the source code: https://github.com/tretyakovalex/nodejs-angular-form-template
Timecodes
0:00 - Intro
0:04 - Clone Angular-NodeJS template
0:30 - Create HTML…
Here is the source code: https://github.com/tretyakovalex/nodejs-angular-form-template
Timecodes
0:00 - Intro
0:04 - Clone Angular-NodeJS template
0:30 - Create HTML…
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Полное визуальное руководство по пониманию цикла событий Node.js
Вы уже некоторое время работаете с Node.js. Вы создали несколько приложений, поиграли с различными модулями и даже освоили асинхронное программирование. Но есть кое-что, что не дает вам покоя, - цикл событий.
Если вы похожи на меня, то вы провели бесчисленное количество часов, читая документацию и просматривая видео, пытаясь понять цикл событий. Но даже опытному разработчику бывает трудно получить полное представление о том, как все это работает. Именно поэтому я подготовил это наглядное руководство, которое поможет вам полностью понять цикл событий Node.js. Усаживайтесь поудобнее, возьмите чашку кофе, и давайте погрузимся в мир цикла событий Node.js.
https://www.builder.io/blog/visual-guide-to-nodejs-event-loop#asynchronous-programming-in-java-script
✍️ @nodejs_lib
Вы уже некоторое время работаете с Node.js. Вы создали несколько приложений, поиграли с различными модулями и даже освоили асинхронное программирование. Но есть кое-что, что не дает вам покоя, - цикл событий.
Если вы похожи на меня, то вы провели бесчисленное количество часов, читая документацию и просматривая видео, пытаясь понять цикл событий. Но даже опытному разработчику бывает трудно получить полное представление о том, как все это работает. Именно поэтому я подготовил это наглядное руководство, которое поможет вам полностью понять цикл событий Node.js. Усаживайтесь поудобнее, возьмите чашку кофе, и давайте погрузимся в мир цикла событий Node.js.
https://www.builder.io/blog/visual-guide-to-nodejs-event-loop#asynchronous-programming-in-java-script
✍️ @nodejs_lib
👍5
Бессерверный Bun против Node: Бенчмаркинг на AWS Lambda
С момента появления серверных сред для JavaScript в качестве основной среды выполнения господствует NodeJS. Node вместе с менеджером пакетов NPM сегодня широко используется в самых разных проектах - от небольших сторонних проектов для любителей до корпоративных систем с высокой посещаемостью. Большинство разработчиков не осмеливаются бросить вызов Node из-за его стандартного статуса в индустрии и обширной экосистемы разработки с открытым исходным кодом. Первым серьезным соперником был Deno, но он так и не прижился, скорее всего, из-за отсутствия сильной совместимости между Node, открытыми пакетами NPM и CommonJS.
https://medium.com/@mitchellkossoris/serverless-bun-vs-node-benchmarking-on-aws-lambda-ecd4fe7c2fc2
✍️ @nodejs_lib
С момента появления серверных сред для JavaScript в качестве основной среды выполнения господствует NodeJS. Node вместе с менеджером пакетов NPM сегодня широко используется в самых разных проектах - от небольших сторонних проектов для любителей до корпоративных систем с высокой посещаемостью. Большинство разработчиков не осмеливаются бросить вызов Node из-за его стандартного статуса в индустрии и обширной экосистемы разработки с открытым исходным кодом. Первым серьезным соперником был Deno, но он так и не прижился, скорее всего, из-за отсутствия сильной совместимости между Node, открытыми пакетами NPM и CommonJS.
https://medium.com/@mitchellkossoris/serverless-bun-vs-node-benchmarking-on-aws-lambda-ecd4fe7c2fc2
✍️ @nodejs_lib
👍1