Node.js

Ищите подрядчика?
Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание заказа занимает 5 минут.
Об инструменте

Что такое Node.js

Node.js – среда для выполнения JavaScript, которую наиболее часто применяют для создания веб-сервера. Технология работает на базе интерпретатора V8, который может напрямую переводить JavaScript в машинный код. Node.js позволяет использовать JavaScript как на стороне пользователя в браузере, так и на стороне сервера, что дает возможность переиспользовать код. Также, подобное использование JavaScript дает преимущества в разработке приложений в реальном времени (RTA), таких как Google Docs.

Главная особенность Node.js – использование технологии неблокирующего ввода/вывода. Если очень просто, благодаря технологии сервер не дожидается ответа по своему запросу в одном потоке, а берется за другие задачи. JavaScript – однопоточный язык; это одна из причин, по которой в Node.js использовали асинхронный ввод-вывод. Технология достигается с помощью кроссплатформенной библиотеки libuv.

Если веб-сервер на JavaScript выполнял все действия в рамках одного потока, многопоточный сервер на PHP выполнял действия в каждом из потоков последовательно, но блокировал следующие процессы в потоке до завершения предыдущего. На тот момент, Node.js показывал лучшую производительность, так как потреблял меньше оперативной памяти и был более эффективным. Сейчас подобные решения есть для других языков, а также существуют более эффективные решения, чем неблокирующий ввод/вывод. Тем не менее, веб-серверы на Node.js отличаются хорошими показателями производительности и потребления ресурса.

Где применяют Node.js

Чаще всего, Node.js применяют в бэкэнд-разработке. Как правило, среду разработки используют в комбинации с такими JavaScript-фреймворками, как Express, а также Nest.js. Данные бэкэнд-фреймворки позволяют не изобретать велосипед, предоставляя качественные архитектурные подходы в разработке бизнес-логики веб-приложения.

Поскольку Node.js – среда разработки с компиляцией в машинный код, на ее базе можно писать программы для разных операционных систем, даже для IoT. Node.js будет полезен в разработке кроссплатформенных приложений, которым необходимо синхронизировать данные между собой. В десктоп-разработке на Node.js используют такие фреймворки, как NW.js и Electron.

Преимущества разработки на Node.js

  • высокая скорость работы веб-сервера при большом количестве пользователей благодаря асинхронному вводу/выводу данных;
  • возможность использовать JavaScript в бэкенде и фронтенде, что позволяет переиспользовать код и дает преимущества в разработке RTA;
  • использование меньшего количества fullstack-разработчиков на JavaScript, нежели большего штата разработчиков со знанием разных языков программирования;
  • Node.js работает с библиотекой npm, которая содержит более полумиллиона различных модулей и расширений;
  • технология работает на базе интерпретатора V8 от Google, который хорошо себя зарекомендовал – его используют в Google Chrome;
  • есть возможность программировать модули на языках C и C++;
  • возможность разрабатывать десктопные и мобильные приложения с использованием фреймворков;
  • большое комьюнити, в том числе русскоязычное.

Недостатки разработки на Node.js

  • Node.js – менее популярная технология, чем язык PHP, который с более развитой инфраструктурой и уже обладает технологиями неблокирующего ввода/вывода;
  • технология Node.js уступает в производительности технологии естественного неблокирования языка Go;
  • в npm находится много инструментов без качественной документации и предварительного тестирования;
  • есть более удачные решения для быстрой разработки бэкэнда небольших проектов, как Ruby on Rails, либо Django;
  • особенности Node.js делают его низкопроизводительным в задачах, которые требуют вычислительных мощностей процессора.

Примеры готовых работ на Node.js

Node.js используют в своих сайтах такие крупные компании, как: Walmart, GitHub, Trello, Netflix, PayPal, NASA, LinkedIn, а также Uber.

Подробнее Свернуть
СЛЕДУЮЩАЯ
AWS Cloud9