Подборка ресурсов для изучения Node.js в своих проектах. В статье приведены ссылки на разные ресурсы (в т.ч. интерактивные уроки).
Node.js стала популярной с момента ее недавнего появления в 2009 году. Было выпущено множество книг, видео, курсов и статей, объясняющих детали создания приложений на Node.js. На самом деле, есть много доступных ресурсов, но сложно понять, с чего начать. Эта сложность усугубляется тем, что Node.js быстро развивается. Соответственно многие результаты поиска в Google могут оказаться устаревшими или неподходящими для начинающих.
Во время изучения Node.js (которое еще продолжается), я обошел десятки сайтов, чтобы найти материалы, подходящие для новичков. В этой статье я представлю по моему скромному мнению лучшие, новые и бесплатные ресурсы для изучения Node.js.
Сначала основы
Начнем с основных вопросов:
Что такое Node.JS?
На нашем сайте знают ответ, который вы можете прочитать в статье Руководство для начинающих в Node.js.
Зачем использовать Node.JS?
Томислав Капан описывает убедительные случаи в Why The Hell Would I Use Node.js? A Case-by-Case Tutorial
Что делать если я лучше воспринимаю информацию визуально?
Нет проблем, уроки на 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.
NPM
Главной темой в развитии Node.js является создание множества небольших однооперационных модулей и составление их в функциональные части ПО. Сообщество приняло этот идеал и создало десятки тысяч бесплатно доступных модулей на NPM. Почти невозможно сразу понять, какой модуль выбрать первым. К счастью, на Github есть прекрасно сортированный список — проект Awesome Node.js.
Написание кода на NodeJS
Когда вы начинаете изучение 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.
Размещение вашего Node приложения онлайн
Если вы готовы создать приложение, которое вы опубликуете в сети, Heroku поможет вам сделать это бесплатно. Стоит обратить внимание и на Nodejitsu и Modulus, каждый из которых предлагает бесплатный месяц пользования.
Если вы хотите поэкспериментировать над созданием вашего собственного сервера и сделать вашу собственную Node.js среду онлайн, на Digital Ocean есть набор отличных уроков, стоимость которых — 5 долларов в месяц.
Будьте в курсе!
Node.js — сообщество большое и очень активное. Несколько хороших мест, на которые стоит обратить внимание:
И, конечно, официальные сайты NodeJS и блоги NPM.
Больше, больше, больше
Это лишь верхушка айсберга, у вас есть возможность обнаружить еще множество всего. Надеюсь, эта статья дала вам хороший толчок в изучении NodeJS и натолкнула на мысли о том, как вы можете использовать эту платформу, чтобы создать что-то значимое. Есть еще множество областей для изучения, в том числе веб-фреймворки, приложения с открытым исходным кодом, инструменты сборки, и даже настольное ПО, все создано с помощью NodeJS.
Если этого списка недостаточно, ещё есть список NodeJS ресурсов на Stack Overflow and GitHub. Удачи и получайте удовольствие от обучения!
Перевод: Софья Лепёхина
Комментарии