Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. hat Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. path40

Чем хорош Node.js: практика современного веб-программирования

Каждые несколько лет браузер с HTML5 изменяется — это совершенно нормально. Важно выбрать подходящие инструменты.

Чтобы создавать приложения на HTML5, нужно постоянно осваивать новые технологии и инструменты. Браузер с HTML5 — очень изменчивая платформа. Каждые несколько лет всё опять становится с ног на голову, а набор технологий для создания современного приложения изменяется.

Node.js — один из таких «мастхэв»-средств разработки клиентских приложений. Это среда выполнения JavaScript-программ, построенная на JavaScript-движке Chrome V8. Среди прочего, Node.js позволяет запускать написанные на JavaScript программы из командной строки прямо на компьютере. Большинство инструментов разработчика клиентской части рассчитано на применение Node.js.

Почему возник Node.js и что это такое

Язык JavaScript создавался в середине девяностых компанией Mozilla как простой скриптовый язык программирования, встраиваемый в код HTML-страниц. Как вспоминает его автор Брэндан Эйх, разработчики ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов и Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией. Он создавался для программирования как на стороне клиента, так и на стороне сервера.

Но, как часто бывает, со временем разработчики начали использовать JavaScript совсем иначе, чем было задумано. Самый неправильно понятый в мире язык программирования в итоге стал самым популярным. К настоящему времени он лидирует в качестве средства для разработки веб-приложений на стороне клиента. Это произошло из-за того, что эволюция веба двинулась в сторону интерактивных веб-приложений, хотя Сеть не была изначально предназначена для этого, как не был предназначен и JavaScript. Пришлось приспособиться.

Новый инструментарий для веба

Для новой роли понадобился новый инструментарий. Постепенно JavaScript оброс целой инфраструктурой фреймворков, библиотек, компиляторов и протоколов. В том числе появилось несколько платформ исполнения серверных и клиентских приложений. Node.js — самая популярная из них. Эту платформу выпустил американский программист Райан Дал в 2009 году.

Программная платформа Node.js работает на движке V8, который транслирует JavaScript в машинный код. Грубо говоря, сам Node является приложением C++, которое получает на входе JavaScript-код и выполняет его.

В Node есть собственный интерфейс на C++ для взаимодействия с устройствами ввода-вывода на компьютере. То есть эта платформа фактически превращает JavaScript из специализированного скриптового языка в язык общего назначения. Это означает, что на Node.js вы можете писать любые компьютерные программы.

Событийно-ориентированный подход

Главная особенность Node.js — то, что вместо традиционной модели параллелизма на основе потоков автор выбрал событийно-ориентированный подход. Это такая парадигма программирования, в которой выполнение программ определяется событиями. Например, это действие пользователя, поступление сетевого пакета, сообщение из другой программы и т.д.

Такой подход сильно упрощает программирование некоторых приложений, особенно при реализации удобного интерфейса ввода-вывода (I/O), как у Node.js. По легенде, идея создания Node.js пришла автору, когда он увидел полосу загрузки файлов на Flickr, которая не понимала реального процента загрузки файлов, то есть не имела обратной связи из браузера из-за отсутствия событийной привязки.

С распространением в интернете социальных сетей и других «интерактивных» сайтов резко выросла востребованность Node.js как платформы для приложений, реагирующих на действия пользователя: чатов, игр, инструментов совместной работы — теперь всё это делают на JavaScript с помощью Node.js.

Таким образом, Node.js — это событийно-ориентированный I/O фреймворк на JavaScript. Технические особенности Node.js делают приложения на его основе легковесными и эффективными. Этим и объясняется его огромная популярность.

Разработку языка координирует Фонд Node.js, который финансируется по программе поддержки свободных проектов Linux Foundation. Это свободный распределенный проект, в создании которого на безвозмездной основе участвуют тысячи разработчиков со всего мира.

Как используется Node.js

Node.js представляет собой платформу для написания JavaScript-приложений с использованием внешних библиотек.

Благодаря Node.js написанный для браузера код JavaScript получает доступ к глобальным объектам, таким как document и window, наряду с другими API и библиотеками. С помощью Node код обращается к жесткому диску, базам данных и Сети. Это делает возможным написание абсолютно любых приложений: от утилит командной строки и видеоигр до полноценных веб-серверов.

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

Пакетный менеджер npm

Важной частью Node.js является пакетный менеджер npmNode.js Packet Manager, который устанавливается вместе с интерпретатором Node (см. ниже).

Как установить Node.js

Последнюю версию Node.js можно скачать с официального сайта nodejs.org. Для большинства пользователей рекомендуется установка версии с долговременной поддержкой (LTS). На данный момент это 8.11.2.

Вместе со средой выполнения по умолчанию устанавливается пакетный менеджер npm.

Установленный Node.js предоставляет две программы командной строки: node и npm. Программа node запускает софт, созданный на JavaScript. Например, напишем простую программу на JavaScript, которая выводит в консоль текст:

console.log("Skillbox test");

Сохраним ее в файл skillbox.js. Так вот, установленная программа Node может выполнить эту программу, как и любую другую программу с js-кодом:

Как видим, команда node выполнила программу skillbox.js. Как и положено, она вывела в консоль текст "Skillbox test".

Кроме node, на компьютер устанавливается программа npm — это система управления пакетами Node, необходимая для установки свободно распространяемых инструментов из Сети. Нам как раз впоследствии понадобятся некоторые из этих инструментов, которые нужно будет скачать после установки npm. Все программы здесь скачиваются и устанавливаются стандартным путем:

npm install <packagename>

Доступные пакеты и их краткое описание

npm search

Например, нам понадобится программа browser-sync для запуска примеров кода в браузере и автоматического обновления страницы при сохранении изменений в коде. Инструмент устанавливается такой командой (с параметром -g, который означает «глобальную» установку пакета для выполнения из любого каталога):

npm install -g browser-sync

Node.js как конструктор приложений

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

Кроме node и npm, нужно еще установить редактор кода, если его у вас до сих пор нет. Есть несколько удобных редакторов, в том числе Visual Studio Code от Microsoft, Brackets от Adobe и популярный свободный редактор Atom. Все они бесплатные.

В дальнейших статьях мы изучим, как работать с Node.js, как настроить Node.js и какие еще инструменты понадобятся в процессе разработки клиентских приложений. Лучше всего начать обучение с вводного курса «JavaScript с нуля».

Курс «JavaScript с нуля»
Практический 4-х месячный курс для тех, кто хочет научиться основам языка сценариев с индивидуальным наставником, разработать фронтэнд для интерактивного веб-проекта и положить кейс к себе в портфолио.
  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

«JavaScript с нуля» — практический четырехмесячный курс для тех, кто хочет научиться основам языка сценариев с индивидуальным наставником, разработать фронтенд для интерактивного веб-проекта и положить кейс к себе в портфолио. Курс идеально подойдет дизайнерам-разработчикам и начинающим программистам, кто уже знаком и умеет разрабатывать страницу на HTML и CSS, но не намерен останавливаться в изучении программирования.

Преподаватели практически «на пальцах» объяснят базовые основы синтаксиса JavaScript, научат создавать визуальные интерактивные элементы и помогут разработать первый веб-проект на JavaScript.

Комментарии

0
Чтобы оставить комментарий,  авторизуйтесь
Хочешь получать крутые статьи по программированию?
Подпишись на рассылку

Skillbox