ProghubPH
pavel-nakonechnyypavel-nakonechnyy12.03.20 12:02

Что такое NodeJS?

основыфронтенд

Зачастую начинающие JavaScript программисты слышат термин “NodeJS”, о котором они не знают. Тогда они гуглят и ищут определение нового слова. Если вы узнали себя, то эта статья для вас.

NodeJS это

  • NodeJS - серверная платформа, реализующая язык JavaScript
  • NodeJS бесплатна, а её исходники открыты
  • NodeJS кроссплатформенна: Windows, Linux, Unix, Mac OS, Android и т.д.
  • Программисты её называют “нода”
  • У NodeJS собственная стандартная библиотека

Зачем нужна Node.JS

Node появился в 2009 году благодаря Райану Далу. До этого в серверах царил подход «один поток на каждое соединение», а Дал придумал использовать систему, которая ориентирована на события. То есть реагирует на действие или бездействие и выделяет под это ресурс. Главная цель Node — построение масштабируемых сетевых серверов.

С тех пор NodeJS широко используется для разработки серверного программного обеспечения, в основном для web. Классический пример применения NodeJS - написание REST API для сайта или мобильного приложения.

Компании, которые используют NodeJS в своих сервисах, источник на Quora:

  • Walmart
  • Paypal
  • Microsoft
  • Linkedin
  • Yahoo
  • Google
  • Netflix
  • Uber

Можно уверенно сказать, что NodeJS является полноценной исполняемой средой для сервера и её можно использовать в проде. По функционалу её можно сравнить с Python, но на JavaScript. При помощи фреймворка Express вы можете быстро создавать http-сервера, с помощью fs работать с файловой системой, с fetch запрашивать данные с удалённых ресурсов и работать с DOM через jsdom. Возможности обширны.

Но что же выделяет NodeJS на фоне других серверных сред и языков:

  • В отличие от php, NodeJS выполняется как классическое приложение, то есть вы можете кешировать данные в память и переиспользовать переменные между запросами.
  • В отличие от Python, в NodeJS чаще всего используют ООП, есть даже строго типизированная разновидность языка - TypeScript, созданный в Microsoft.
  • В отличие от Java, NodeJS легко маштабировать за счёт асинхроннных потоков и корутин.
  • В отличие от браузерного JavaScript, NodeJS позволяет подключать другие файлы приложения через require

Кому нужна NodeJS

Так как NodeJS позволяет писать JavaScript код для сервера, то на неё будет легко перейти тем, кто уже знает JS. «Не важно, куда ты крутишь руль, ты все равно поворачиваешь». Не важно, на какой стороне выполняется скрипт, JavaScript остается JavaScript'ом.

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

Если Python занял свою нишу в Machine Learning, то NodeJS - Node — это родной дом всего «интернета вещей» (Internet of Things, IoT). Термостаты, фитнес-трекеры — всё это можно запрограммировать через Node.

Популярность NodeJS по Google Trends (заметьте, что NodeJS появилась только в 2009):

image-20200213185732493

Количество вакансий на HeadHunter по каждой из используемых технологий на момент 13.02.2020. Следует заметить, что Go обычно требуется как второй язык в связке с Php/Python.

image-20200213190335460

Так что проблем с поиском работы у вас не возникнет.

Как выучить NodeJS

Прежде чем браться за NodeJS, вам необходимо изучить основы языка JavaScript. Для освоения NodeJS вам вряд-ли помогут книги. Источники по платформе стремительно устаревают, потому что авторы их не следят за эволюцией Node. Например, на #1 сайте в выдаче по запросу “nodejs гайд” можно найти информацию:

Прежде всего, для того, чтобы использовать Node.js, необходимо иметь под рукой работающую *nix-подобную операционную систему. Рекомендуется Linux или OSX, но также могут подойти FreeBSD или cygwin (под windows). В настоящее время ведутся работы над портированием Node.js под windows, но пока они не доведены до стабильного состояния.

Однако, она устарела ещё в 2011 году, когда было завершено портирование под Windows.

Если же вы верите только бумаге, то вам понравится книга “Node.js Разработка серверных веб-приложений на JavaScript” Дэвида Хэррона. Купить её можно на ЛитРесе. Как верно отмечает один из комментаторов книги:

Если вы попробовали использовать Node.js по туториалам, то в данной книге ничего нового не узнаете кроме пары интересных моментов. В целом книга хорошая, но короткая. Подойдет для тех тех, кто хочет попробовать использовать Node.js, но не знает с чего начать.

Если у вас нет проблем со знанием английского языка, то вам подойдёт туториал на W3Schools. На русском есть сайт nodeguide или цикл статей на Хабре.

А проверить и закрепить свои знания помогут наши тесты, например тест по основам Node.js.