/ it Новости / Коротко про NodeJS / Обзор, возможности, функции

Коротко про NodeJS / Обзор, возможности, функции

Коротко про NodeJS / Обзор, возможности, функции

531 · 22 ноября 2018 в 17:02 ·
NodeJS произвёл настоящую революцию в подходе к построению сайтов. Почему он стал таким популярным, на что способен Node и какие его основные функции. Об этом в этой статье.

NodeJS был придуман Райаном Далем в 2009. Еще до создания NodeJS, Даль занимался разработкой на Ruby on Rails. Основную идею для NodeJS он позаимствовал с Flickr (сайт для загрузки и обмена изображениями). На сайте была шкала состояния, которая показывала статус загрузки изображения. Сейчас это кажется чем-то самим собой разумеющимся, но тогда, в начале нулевых, подобное «общение» со стороны сервера было чем-то новым и необычным. Именно это и «зацепило» Даля, ведь раньше серверы не имели возможностей для одновременной обработки нескольких запросов (например, при загрузке изображения и параллельных запросах со стороны того же пользователя). Это явление называется параллелизмом.


Такое взаимодействие браузера и сервера как будто зажгло невидимую лампочку в голове Даля. Он понял, что веб-серверам нужно научиться одновременной обработке нескольких запросов. Текущий метод получения запроса/отправки ответа был явно устаревшим и мало подходил для решения практических задач. Более наглядно вся логика процесса изображена на графике ниже:



Возникает некий запрос. Например, на загрузку файла. Сервер принимает запрос. Пока этот запрос выполняется (толстая линия справа), происходит обработка других запросов. Затем возвращается ответ на главный запрос. Это концепция параллелизма со стороны NodeJS.


Даль с коллегами реализовали данную концепцию в JavaScript с использованием V8 Engine от Google. Этот движок берет JavaScript код и компилирует его в C++, причем, происходит это с молниеносной скоростью. V8 выполняет операции на лету, и быстро компилирует код перед его выполнением.  Это делает NodeJS быстрее остальных языков программирования и фреймворков.


NodeJS не являлся стандартным веб-сервером ни раньше, ни сейчас. При распаковке NodeJS он не запускается сразу как веб-сервер. Для этих целей разработчикам потребуются фреймворки или прописывание логики в NodeJS.



Так почему же NodeJS не является стандартным веб-сервером, если он был задуман именно для этого? Все дело в том, что NodeJS создавался для решения более широкого спектра задач, чем просто многозадачность сайта. NodeJS задумывался для реализации идеи создания нескольких запросов и одновременной обработки нескольких процессов. В этом и кроется популярность платформы, ведь NodeJS – это куда больше, чем просто веб-сервер.


NodeJS используется в качестве веб-серверов. К тому же, из него получается отличная операционная система, средство логирования (например, для записи HTTP запросов или пользовательского поведения в десктопном приложении), универсальный скриптовый язык. Еще одна интересная область применения – создание нейронных сетей и машинное обучение. Тем не менее, чаще всего NodeJS используется для веб-серверов.


Рассмотрим современный NodeJS. Теперь он используется, в основном, для разработки серверной части (back-end). Back-end – это скрытая часть сайта, в нем прописана вся логика работы сайта. Как правило, идет в комплекте с front-end фреймворками, то есть той частью, которую вы видите, и с которой взаимодействуете при, так называемой, full-stack разработке. Самыми популярными фреймворками являются Angular, Vue и React.



NodeJS идет в комплекте с определенным ресурсом – NPM. NPM помогает разработчику управлять пакетами (т.е. полезными функциями JavaScript), и добавлять их в любой проект NodeJS. Скорость разработки при использовании пакетов значительно возрастает, поскольку разработчик может абстрагироваться от рутинных операций и быстрее выполнять итерацию кода.

Выводы

NodeJS – это JavaScript-фреймворк, написанный на движке V8 Engine от Google. Он создавался для одновременной обработки нескольких запросов. С поставленной задачей NodeJS справился на ура, благодаря чему быстро стал одним из самых популярных фреймворков для разработки сайтов. К тому же, разработчики могут тратить меньше времени на разработку, благодаря использованию встроенного менеджера пакетов NPM, который позволяет добавлять другие JavaScript фреймворки и библиотеки. Так что NodeJS работает действительно быстро!


Посмотреть курс по NodeJS можно у нас на сайте! Страница с курсом здесь.



Больше интересных новостей