Подборка ресурсов для изучения Node.js в своих проектах. В статье приведены ссылки на разные ресурсы (в т.ч. интерактивные уроки).

Node.js стала популярной с момента ее недавнего появления в 2009 году. Было выпущено множество книг, видео, курсов и статей, объясняющих детали создания приложений на Node.js. На самом деле, есть много доступных ресурсов, но сложно понять, с чего начать. Эта сложность усугубляется тем, что Node.js быстро развивается. Соответственно многие результаты поиска в Google могут оказаться устаревшими или неподходящими для начинающих.

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

Начнем с основных вопросов:

Что такое Node.JS?

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

Зачем использовать Node.JS?

Что делать если я лучше воспринимаю информацию визуально?

Нет проблем, уроки на NodeCasts старые, но хорошие. CodeSchool также бесплатно предлагает первый урок их курса по Node.

Есть ли что-то, что я могу почитать по дороге на работу?

Если вам нужен лонгрид, обратите внимание на Art of Node Макса Огдена на GitHub. Это сравнительно недавний и хорошо усваиваемый материал. Чтобы найти больше книг, зайдите на Node: Up and Running от O’Reilly, или на Mixu’s Node Book online. Они немного устаревшие, но все же их стоит прочитать.

Хорошо, если у вас уже установлены Node.js и Node Package Manager (NPM). Если нет, то перейдите на официальный сайт NodeJS и нажмите зеленую кнопку “Установить”. Рабочая версия NodeJS и NPM дает вам доступ к одному из самых популярных учебных ресурсов на сегодняшний день — Nodeschool.IO.

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

Самое лучшее место начать обучение — набор уроков Learn You Node. На текущем сайте Nodeschool есть подробная информация об интерактивном курсе. Полный исходный код проекта вы можете найти на GitHub. Чтобы начать прямо сейчас, откройте окно терминала и пропишите команду: npm install -g learnyounode . Если у вас Mac, возможно, вам нужно добавить sudo в начало команды. Это позволит установить полный пакет learnyounode, чтобы он мог запуститься в любом месте из вашей командной строки.

После установки learnyounode , создайте пустую папку, и перейдите в неё в окне терминала. Запустите команду learnyounode , чтобы начать. На первом уроке вы создадите javascript файл с одной строкой кода. Следуйте инструкциям и сохраните javascript файл в созданную ранее папку. Вам нужно запустить команду learnyounode verify yourfilenam.js в той же папке, в которой вы создали javascript файл.

Предложены упражнения разной сложности: от очень простых до реально сложных. Есть онлайн форумы на случай, если вы где-то застрянете. Если вам посчастливилось жить в городе, в котором намечается встреча участников Nodeschool, я настоятельно рекомендую её посетить.

Для написания Javascript нужен бесплатный текстовый редактор. Я рекомендую Brackets от Adobe. Он построен для написания фронтенда на HTML, CSS и Javascript, но также может использоваться для NodeJS без дополнительных плагинов.

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

События и цикл событий

Для короткого, но хорошего описания с несколькими сравнениями с другими языками, смотрите Understanding the Node.js Event Loop от StrongLoop. Описание от Mixu’s Node Book немного сложнее, но тоже достаточно хорошее.

Потоки

Потоки в Node.js — очень мощный инструмент, но эта тема быть довольно сложной для непосвященных. Streams Handbook от Substack может стать ресурсом для начала работы. На Nodeschool.IO есть интерактивный курс, направленный на изучение потоков, называемый stream-adventure. Другой интересный проект — Streams Playground от John Resig (создателя jQuery).

Модули

Вводный материал о модулях может быть полезен с теоретической точки зрения. Но этого явно недостаточно для создания вашего собственного модуля, т.к. конкретная структура вне структуры CommonJS не предоставлена. Вы можете найти пару хороших статей с изложением шаблонов проектирования для создания модулей на GoodEggs.com и в блоге Mario Casciaro.

Главной темой в развитии Node.js является создание множества небольших однооперационных модулей и составление их в функциональные части ПО. Сообщество приняло этот идеал и создало десятки тысяч бесплатно доступных модулей на NPM. Почти невозможно сразу понять, какой модуль выбрать первым. К счастью, на Github есть прекрасно сортированный список — проект Awesome Node.js.

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

Ещё вы можете наткнуться на код, который надо быстро открыть без необходимости открывать текстовой редактор и запускать код локально. Для этого есть простой и быстрый сервис Runnable.com.

Для более мощного и надежного онлайн редактирования, можно начать с Cloud9, у которого имеется огромное количество отличных особенностей. Он включает в себя пошаговый отладчик кода на NodeJS.

Лучший (на мой взгляд) вариант для написания Node.js приложений локально — WebStorm от JetBrains. Это платный продукт, но есть бесплатная пробная 30-дневная версия. Часто есть бесплатный доступ к бета-версии без ограничения, пока вы обновляетесь до последнего патча.

Вышеупомянутый редактор Brackets от Adobe выпускается с расширением, которое называется Theseus. Оно позволяет отлаживать JavaScript, что может быть полезно при работе с NodeJS. Это экспериментальное расширение, которое предоставляется бесплатно. На него есть хороший обзор в блоге Brackets.

Если вы хотите продолжать использовать ваш текстовой редактор, но также не хотите отказываться от возможности отладки, тогда обратите внимание на пакет node-inspector. Это автономный инструмент отладки, использующий Blink Developer Tools (похожий на Chrome DevTools). У Идо Грин есть хороший пост о начале работы с данным инструментом, который называется Debug NodeJS Like A Pro.

Если вы готовы создать приложение, которое вы опубликуете в сети, Heroku поможет вам сделать это бесплатно. Стоит обратить внимание и на Nodejitsu и Modulus, каждый из которых предлагает бесплатный месяц пользования.

Если вы хотите поэкспериментировать над созданием вашего собственного сервера и сделать вашу собственную Node.js среду онлайн, на Digital Ocean есть набор отличных уроков, стоимость которых — 5 долларов в месяц.

Node.js — сообщество большое и очень активное. Несколько хороших мест, на которые стоит обратить внимание:

И, конечно, официальные сайты NodeJS и блоги NPM.

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

Если этого списка недостаточно, ещё есть список NodeJS ресурсов на Stack Overflow and GitHub. Удачи и получайте удовольствие от обучения!

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Современный подход к разработке с использованием Next.js