Node.js
Node.js, Node
Что это такое
Node.js — среда исполнения, которая выполняет JavaScript вне браузера. Кроме самого языка она даёт программе всё нужное для настоящей работы: файлы, сетевые сокеты, процессы и таймеры. Отличительное решение — один поток на весь код и асинхронный ввод-вывод: поэтому один процесс держит тысячи открытых соединений и не заводит по потоку на каждое.
Почему это важно
Практическая привлекательность — один язык на всём стеке: один и тот же разработчик переходит между браузером и сервером, а типы и проверки можно разделить между ними. Эксплуатационная выгода — в модели: сервисы, которые в основном ждут сеть (а это большинство API), обслуживает один асинхронный процесс, и он же эффективно расходует память, избегая затрат на планирование множества потоков. Однако у этой модели есть цена: любое долгое вычисление блокирует всё остальное, а асинхронным потоком управления нужно управлять осознанно, а не полагаться на среду.
Что в этом треке
- Цикл событий (05-backend-data/02-nodejs/01-the-event-loop) — как один поток обслуживает много конкурентных операций, не блокируясь.
- Модули и среда исполнения (05-backend-data/02-nodejs/02-modules-and-the-runtime) — система модулей, стандартная библиотека и то, что даёт среда.
Предварительные требования
- JavaScript (02-frontend/06-javascript)
Что читать дальше
- JavaScript (02-frontend/06-javascript) — язык, который выполняет эта среда, поэтому читайте его первым.
- Express.js (05-backend-data/08-expressjs) — фреймворк, с которого начинается большинство серверного JavaScript.
- Go (05-backend-data/05-go) — второй компилируемый язык этого трека и очевидное сравнение для конкурентных сетевых сервисов.