Растущий успех JavaScript повлек за собой множество изменений, и лицо веб-разработки сегодня радикально изменилось. Вещи, которые мы можем делать в Интернете сегодня с помощью JavaScript, работающего на сервере, а также в браузере, было трудно представить несколько лет назад или они были инкапсулированы в изолированных средах, таких как Flash или Java-апплеты.

Прежде чем погрузиться в решения Node.js, вы можете узнать о преимуществах использования JavaScript через стек, который объединяет язык и формат данных (JSON), чтобы вы могли оптимально повторно использовать ресурсы разработчика. Поскольку это скорее вклад в JavaScript, чем непосредственно в Node.js, мы не будем подробно его изучать. Но ключевым преимуществом является включение Node в ваш стек.

Как говорит Википедия: «Node.js — это объединенная компиляция движка Google V8 JavaScript, уровня абстракции интерфейса libuv и основной библиотеки, которая сама в основном написана на JavaScript». После этого стоит вспомнить, что Райан Даль, разработчик Node.js, пытался создавать веб-сайты в реальном времени с возможностями push-уведомлений, «вдохновленные такими приложениями, как Gmail». В Node.js он дал разработчикам инструмент для работы над парадигмой неблокирующего, управляемого событиями ввода-вывода.

После более чем 20-летнего использования сети без сохранения состояния на основе парадигмы запроса-ответа без сохранения состояния у нас действительно есть веб-приложения с двусторонним подключением в режиме реального времени.

Одним словом, Node.js сияет в веб-приложениях в реальном времени, использующих технологии передачи сетевых сокетов.

Что в этом такого новаторского? Итак, после более чем 20 лет веб-модели запроса-ответа без сохранения состояния у нас наконец-то появились веб-приложения с двусторонней связью в режиме реального времени, когда и клиент, и сервер будут инициировать связь, позволяя им свободно обмениваться данными. Это сильно контрастирует с типичной парадигмой веб-ответа, где клиент часто инициирует общение. По сути, все это основано на открытом веб-стеке (HTML, CSS и JS), работающем через стандартный порт 80.

Со всеми своими преимуществами Node.js теперь играет жизненно важную роль в стеке технологий нескольких известных компаний, которые зависят от его уникальных преимуществ. Фонд Node.js изложил все последние идеи о том, какие компании должны использовать Node.js, в кратком обзоре, который можно найти на странице тематических исследований Node.js Foundation.

Как это работает?

Основная идея Node.js: использовать неблокирующий ввод-вывод, управляемый событиями, чтобы оставаться легким и мощным при работе с приложениями реального времени с интенсивным использованием данных, работающими в распределенных сетях.

Это полный рот!

На самом деле это говорит о том, что Node.js не является новой платформой с серебряной пулей, которая доминирует в области веб-разработки. Скорее это платформа, которая служит определенной потребности.

Node.js не является новой серебряной пулей, которая доминирует в мире веб-разработки. Скорее это платформа, которая служит определенной потребности. И совершенно важно, что мы это осознаем. Вы, вероятно, не хотите использовать Node.js для операций с интенсивным использованием ЦП; на самом деле, использование Node.js для тяжелой обработки сведет на нет практически все его преимущества. В чем действительно хорош узел, так это в разработке быстрых, масштабируемых сетевых приложений, поскольку он может обрабатывать огромное количество одновременных подключений с высокой пропускной способностью, что соответствует высокой масштабируемости.

Довольно круто, как он работает под капотом. Node.js работает в одном потоке, используя неблокирующие вызовы ввода-вывода, что позволяет ему принимать сотни тысяч одновременных подключений, сохраняемых в цикле событий, в отличие от стандартных методов веб-обслуживания, когда каждое подключение (запрос) порождает новый поток, занимает системную оперативную память и в конечном итоге достигает максимального объема доступной оперативной памяти.

NPM: диспетчер пакетов Node.js

При обращении к Node.js нельзя игнорировать одну вещь — встроенную поддержку управления пакетами с помощью NPM, инструмента, который по умолчанию поставляется с любой установкой Node.js. Концепция модулей NPM несколько близка к концепции Ruby Gems: набор свободно доступных взаимозаменяемых элементов, доступных путем простого развертывания из онлайн-репозитория, включая управление версиями и зависимостями.

Полный список подключаемых модулей можно найти на веб-сайте npm или перемещаться по ним с помощью утилиты npm CLI, которая автоматически создается вместе с Node.js. Модуль экосистемы доступен всем, и каждый может опубликовать свою версию, которая будет включена в репозиторий npm.

Некоторые из наиболее известных модулей npm:

  • Express-Express.js — или просто Express — вдохновленная Синатрой среда веб-разработки для Node.js и де-факто база для большинства приложений Node.js, существующих сегодня.
  • Hapi – очень гибкая и простая в использовании ориентированная на конфигурацию платформа для разработки веб-приложений и сервисных приложений.
  • Connect — расширяемая структура HTTP-сервера для Node.js, включающая набор высокопроизводительных модулей, известных как промежуточное ПО; выступает в качестве основы для Express.
  • Socket.io и sockjs. Серверный компонент — это два самых популярных компонента веб-сокетов на сегодняшний день.
  • Pug (ранее Jade) — один из самых популярных шаблонизаторов на основе HAML по умолчанию в Express.js.
  • MongoDB и Mongojs — оболочки MongoDB для предоставления API объектной базы данных MongoDB в Node.js.
  • Redis – клиентская библиотека (Redis).
  • Lodash (подчеркивание, lazy.js) — утилита JavaScript. Underscore начал игру, но был отвергнут одним из двух конкурентов, в первую очередь из-за лучшей производительности и модульной реализации.
  • Forever. Вероятно, самая распространенная утилита для обеспечения непрерывной работы скрипта узла. Поддерживайте цикл Node.js в рабочем состоянии перед лицом любых непредвиденных сбоев.
  • Moment — библиотека данных JavaScript для анализа, проверки, обработки и форматирования дат.

Где вы должны/можете использовать Node.Js:

  • Чат
  • API поверх объекта Db
  • Входы в очередь
  • Потоковая передача данных
  • Прокси
  • Брокерские услуги — Личный кабинет биржевого трейдера
  • Панель мониторинга приложений
  • Панель мониторинга системы
  • Серверные веб-приложения

Итак, как мы уже говорили, Node имеет много преимуществ по сравнению с другими технологиями, и многие крупные компании стали использовать Node.js в своих приложениях, возможно, по этой причине.

Какие известные компании использовали Node.js для создания своих приложений? У нас есть несколько примеров, которые имеют высокий профиль.

Нетфликс

Netflix является ведущим в мире поставщиком потокового мультимедиа видео по запросу. Это управляемая данными сеть, использующая огромное количество исследований A / B для создания богатого интерфейса для своих 93 миллионов подписчиков по всему миру. Большое количество конкретных пакетов в каждом цикле отправки создает проблему условной зависимости и масштабируемости устройства. Вот почему компания решила использовать быстрый и суперэффективный Node.js. Одним из наиболее значительных результатов этого стало сокращение времени запуска на 70%.

Трелло

Trello — это приложение для управления проектами, которое помогает нам в повседневной работе. Серверная часть Trello была построена на Node.js. Управляемый событиями неблокирующий сервер оказался удачным вариантом для немедленного распространения обновлений, для поддержания которого требовалось множество открытых соединений. Node.js также стал полезен, когда фирма разработала прототип инструмента для создания одностраничных приложений. Для них это был быстрый способ начать работу и убедиться, что все идет в правильном направлении.

PayPal

PayPal, многонациональная система онлайн-платежей, изменила свою серверную технологию с Java на JavaScript и Node.js. Раньше технические отделы компании были разделены между теми, кто пишет код для браузера, и теми, кто кодирует прикладной уровень, и это не совсем так. Тогда на помощь пришли full-stack инженеры, но и эта компоновка не была идеальной. Принятие Node.js решило их проблемы, поскольку позволило писать клиентские и серверные программы на одном языке программирования — JavaScript. В результате объединенная команда может понять обе стороны проблем и более эффективно реагировать на потребности клиентов.

LinkedIn

LinkedIn, ведущая в мире социальная сеть для бизнеса и трудоустройства, также поддержала Node.js и в прошлом году переключила свою инфраструктуру устройств iOS с Ruby on Rails на Node.js. Несмотря на то, что в то время это была еще очень несвоевременная атмосфера, это оказалось хорошим шагом для компании. Новое программное обеспечение в 2–10 раз быстрее своего предшественника и невероятно легкое. Кроме того, производство было очень быстрым.

Убер

Uber, платформа, которая связывает водителей с потребителями, которым требуются транспортные услуги (а теперь даже доставка еды), использует различные инструменты и языки программирования при разработке своего приложения. Технический стек Uber постоянно меняется, и с тех пор они разработали новые решения, которые в определенных отношениях оказались более эффективными. Тем не менее, Node.js также является одним из ключевых винтиков в деятельности бизнеса, поскольку он помогает масштабироваться в соответствии с растущим спросом на их услуги.

Середина

Medium — это онлайн-платформа для публикации их веб-серверов, использующая Node.js. Хотя веб-приложение может выглядеть как обычная HTML-страница, на первый взгляд за ним стоит еще больше технологий. Medium — это платформа, управляемая данными, которая развивается вместе с пользователями и их поведением. Node.js особенно полезен для более глубокого понимания улучшений продукта и использования новых концепций, когда дело доходит до проведения экспериментов A/B.

eBay

eBay, глобальная компания электронной коммерции, по-прежнему была открыта для новых технологий. Команда остановилась на Node.js по двум основным причинам: им нужна была реализация в реальном времени для управления активными ссылками на веб-сайт, насколько это возможно, и система, которая могла бы организовать широкий спектр ресурсов, специфичных для eBay, которые просматривают информацию о странице. Node.js отлично подходил.

НАСА

Да, НАСА тоже использует Node.js. Эта система гораздо важнее, чем в других приложениях, поскольку она защищает жизни, обеспечивая безопасность астронавтов в их рискованных экспедициях в космос. После аварии, в которой один из астронавтов чуть не погиб из-за неэффективного размещения данных во многих местах, НАСА столкнулось с проблемой перемещения данных, связанных со скафандрами EVA, в одну облачную базу данных, чтобы сократить время доступа. Новая программа на основе Node.js сократила количество этапов процесса с 28 до 7.

Yahoo

В течение довольно долгого времени команда веб-интерфейса Yahoo использовала Node.js для обслуживания веб-страниц. Одностраничные приложения или сайты с контентом, использующие Node.js, — многие из их новых продуктов. Они передают около 25 000 запросов в секунду на серверы Node.js, что демонстрирует размер и высокую производительность этого Javascript-приложения. Эрик Феррайуоло, главный разработчик программного обеспечения Yahoo, сообщает, что эффективность повысилась для каждого свойства, которое они передают в стек Node.js.

Конечно, на этом список не заканчивается. Есть более выдающиеся, которые вы можете поискать и найти сами.

Посмотрите на светлую сторону будущего

Вышеприведенные примеры — это лишь верхушка айсберга среди всех организаций, внедривших Node.js в свою продукцию. Node.js используется многими крупными организациями, например. Github, Microsoft, Google, Yahoo, Mozilla или. Технологии предоставляют бесчисленные возможности для развития, и мы с нетерпением ждем появления на рынке все новых и новых приложений на основе Node.js.

Так что, если у вас есть какие-то планы, лучше рассмотреть лучших и не забудьте также выбрать лучших разработчиков, пользующихся спросом!