Содержание

Курс по Node.js

Этот курс посвящён профессиональной серверной разработке на Node.js.

Мы изучим, как писать современные серверные приложения.

Основные темы курса:

  • Фундаментальное понимание Node.js: важные встроенные и сторонние модули, потоки.
  • Работа с базой данных MongoDB (с другими базами она устроена аналогично).
  • Веб-сервисы и обычные страницы для обработки сетевых запросов.
  • Авторизация, в том числе через соц. сети.
  • Непрерывное соединение и общение при помощи Websockets.
  • Тестирование: unit-тесты, функциональное и e2e тестирование.
  • А также ряд других аспектов, которые не так заметны, но тоже важно сделать правильно: конфигурация, логи, обработка ошибок, роутинг и т.п.

Курс идёт примерно 1.5 месяца.

До начала обучения: вводные материалы

За неделю до курса мы попросим вам посмотреть видео-лекции по основам Node.js. Они довольно простые, чтобы на первом занятии вы уже что-то знали.

Мы также будем использовать систему Git/GitHub для обмена исходным кодом, так делает большинство проектов. Для тех, кому это в новинку — дадим крэш-курс и поможем разобраться.

Онлайн-занятия с преподавателем 2 раза в неделю

Занятие проходит в формате вебинара. Запись занятия доступна через 15 минут после окончания. Вы также сохраняете доступ к записям после окончания курса.

Домашние задания, обратная связь по ним

Ваши решения присылаете преподавателю, он проверяет качество кода, использование правильных приёмов проектирования, даёт обратную связь.

Чат

Между занятиями доступен групповой чат для общения и вопросов преподавателю.

Курсовой проект

Делаем курсовой проект: интернет-магазин. Большую часть кода для проекта пишете вы.

Результат

Вы хорошо разбираетесь в устройстве Node.JS, разрабатываете и отлаживаете программы на нём.

Вы знаете, как поднять проект малого и среднего размера, чтобы он стабильно работал, не падал, корректно отрабатывал при ошибках.

Вы можете разработать современный веб-сервис на Node.JS с использованием самого последнего стандарта JavaScript и фреймворков.

Сертификат

По окончанию курсов вы получаете сертификат в электронном виде на русском и английском языках.

Хотя сертификатам в нашей профессии обычно не придают значения. Главное — знания и умения, которые вы получите, если будете полноценно участвовать в курсе.

Занятия проходят онлайн два раза в неделю.

Собрание

Первая встреча традиционно является собранием. На нём мы знакомимся, проверяем подключение, обсуждаем организационные вопросы, взаимодействие с преподавателем, как учиться на курсе.

Фундаментальный Node.js

Изучим, как устроен Node.js, его внутреннюю архитектуру и основные приёмы разработки.

  • Настройка окружения для разработки.
  • Прием и обработка HTTP-запросов.
  • Организация кода Node.js-приложения: модули в старом (commonjs) и новом (ES modules) синтаксисе.
  • Отладка процесса Node.js: скрипты, утечки памяти.
  • Жизнь и смерть Node.JS-процесса, событийный цикл. Макротаски и микротаски, особенности работы в Node. js.
  • HTTP-сервер, асинхронная модель Node.js.

Потоки данных

Потоки данных в Node.js используются при приёме и отправке multipart-форм, файлов, больших запросах к базе данных и во многих других ситуациях.

Когда разработчики переходят от обычного JavaScript к Node.js, у них всегда возникают сложности с потоками, поэтому мы уделяем им особое внимание.

  • Потоки для чтения, записи и преобразования данных. Область применения потоков, их правильное использование.
  • Внутреннее устройство потоков: буферизация данных, события, методы управления потоками.
  • Тип данных Buffer для бинарных данных.
  • Передача данных из потока в поток, обработка ошибок в цепочке.
  • Последние изменения и улучшения: потоки в Node.js постоянно меняются, мы даём самую последнюю версию.

Юнит- и функциональное тестирование

Автоматизированное тестирование используют почти во всех проектах, хотя и в разном объёме. Если его правильно применять, оно делает разработку надёжнее и проще.

  • Типы тестирования, архитектурное устройство тестовых фреймворков, отличия, инструментарий.
  • Написание юнит-тестов при помощи Mocha и Sinon, для тестирования классов и функций.
  • Написание функциональных тестов HTTP-сервера для проверки полного цикла работы.

По окончанию этого занятия вы понимаете, как разрабатывать на Node.js, как делать сервер и правильно обрабатывать запросы, автоматически тестировать свой код.

Серверные фреймворки, Koa.js

Фреймворки облегчают написание приложений, за счет реализации типичных задач, стоящих перед разработчиком.

  • Принципы устройства широко распространённых фреймворков на Node.js: express.js и koa.js (новое поколение express).
  • Создаём простой сервер на koa.js.
  • Архитектура вложенных middleware, приём проектирования “цепочка обязанностей”.

Реализация основных задач:

  • Обработка запросов, роутинг.
  • Логирование.
  • Обработка ошибок.
  • Чтение больших POST-запросов.
  • Отдача статических файлов.
  • Конфигурация приложения в разных окружениях.

Базы данных

Базы данных, такие как MongoDB, MySQL, Oracle и другие, хранят все данные нашего приложения: товары, пользователей и так далее, и позволяют быстро искать среди них. Они используются почти во всех современных приложениях, исключая самые простые.

  • Общие принципы работы с базами данных:
    • NoSQL, используя Mongodb,
    • Поиск по тексту с морфологией на Elasticsearch
  • Для проекта будем использовать mongodb, поэтому изучим ключевые особенности работы с этой базой.
  • Создание REST API для работы с пользователями при помощи MongoDB и Koa.js
    • ООП при помощи Mongoose: модели, запросы, схемы, валидация и плагины.
    • Создание, сохранение и поиск пользователей в базе.
    • Индексы для быстрого поиска.
    • Валидация, обработка ошибок

Пользователи, авторизация

Авторизация для пользователей необходима практически в каждом приложении.

  • Принципы безопасного хранения паролей, использование криптографических алгоритмов для генерации хэшей.
  • Регистрация, вход и выход из приложения.
  • Пользовательские сессии (cookie для браузера, jwt для микросервисов).
  • Использование библиотеки passport.js, которая предоставляет готовые модули авторизации. Создание и подключение OAuth 2.0 стратегий на примере социальной сети vkontakte (по желанию можем рассмотреть и другие).
  • Создание серверной части для фронтенд-приложения:
      Фронтенд-часть на React.js уже написана.
    • Веб-сервисы для авторизации.

Улучшаем приложение

  • Шаблонизация (модуль pug).
  • Email: отправка, важные нюансы (внешние сервисы, защита от спама, инлайнинг стилей, картинки).
  • Архитектура сложных приложений:
    • Вложенный роутинг
    • Организация файлов и модулей проекта.
  • Интеграционное тестирование: написание скриптов, которые управляют браузером, позволяют автоматически открыть страницу, залогиниться, добавить товар в корзину и оплатить его.

После этого занятия вы умеете создавать сервер для SPA или обычного приложения с веб-сервисами, тестами, авторизацией.

При желании можно дописать к нему новые сервисы, архитектура и ваши навыки легко позволяют это.

Чаты, непрерывная подгрузка и обмен данными

Способы поддержки непрерывного соединения с сервером и получения новых данных: нужно для создания чата, онлайн-игр и других интерактивных приложений.

  • Основные приёмы и техники, их плюсы и недостатки, область применения: Long polling, Server Sent Events, Websockets.
  • Используем Websockets (при помощи socket.io) для непрерывных соединений.
  • Единая авторизация, интеграция websocket с приложением.
  • Реконнект, отслеживание состояния соединения.
  • Кластеризация при высоких нагрузках.
  • Развёртывание и запуск приложения

    На этом занятии мы обсудим важнейшие вопросы, касающиеся запуска и обновлений готового приложения на сервере, в “боевом” окружении.

    • Запуск и поддержание работы приложения.
    • Плавное обновление (рестарт без потери соединений и без даунтайма).
    • Миграции базы данных.
    • Мониторинг.
    • Менеджмент логов.
    • Примеры развёртывания:
      • Heroku с github-интеграцией
      • Тестирование с travis-ci
    • Хранение и использование секретных ключей.

    После этого занятия вы понимаете в деталях весь цикл разработки приложения: не только написания кода, но и релиза, организации логов и запуска на сервере.

    Занятие на дополнительные темы, нужные группе

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

    Это занятие отведено специально для них и строится целиком и полностью на ваших вопросах. Можем обсудить как чисто технические вопросы, например преимущества и недостатки микросервисной архитектуры или отличия протокола REST от GraphQL, так и нетехнические — например, из каких источников можно получать новую информацию.

    Онлайн-магазин:

    • С товарами в базе данных, сгруппированными по категориям.
    • С возможностью поиска по товарам.
    • С аутентификацией и регистрацией пользователей.
    • С чатом поддержки.
    • А также с отсылкой почты и другим функционалом, важным для реальных проектов.
    • Знание JavaScript, включая ООП, классы.
    • Понимание браузерного JavaScript/HTML/CSS (клиентский код писать не понадобится, этот курс про серверный JS).
    • Интернет 256kb/s или быстрее для видео.

    Мы занимаемся обучением с 2007 года. За это время у нас обучились тысячи разработчиков из разных стран и компаний.

    Все отзывы являются честными. Мы не модерируем их.

    • Курс по Node.js

      все отзывы

      Без преувеличения могу сказать, что мои ожидания того, что должно быть в программе курса и как должно быть подано полностью оправдались. Понравилось внимание преподавателя к нюансам и стиль изложения, плюс все сказанное подкрепляется в живую показанным кодом. В общем, Илья, большое вам спасибо за проделанную работу! По правде говоря, оценивая курс трудно быть объективным, настолько курс хорош. Объем и глубина материала отличная.

    • Курс по Node.js

      все отзывы

      Спасибо большое Илье, замечательный курс. Сильная сторона курса, помимо хорошей программы, в том, что обо всем, что будет непонятно/интересно можно (и даже нужно) спрашивать у Ильи – для этого, во-первых, предоставлены все технические возможности, и во-вторых, Илья всегда отвечает на все вопросы. Ну и еще следует упомянуть про домашки, их выполнение дает хорошую почву для обсуждения всяких разных моментов, с которыми потом скорее всего столкнешься в реальных проектах.

    • Курс по Node.js

      все отзывы

      Данный курс для меня был как погружение в веб-разработку в целом. На курсе я отлично разобрался что такое back-end впринципы, на примере Node.js. Что такое серверный рендеринг и в вопросах протоколов HTTP, ws. В разделении клиент-серверной реализации.

      Понял почему на back-end необходимо писать тесты и как ускорить процесс разработки.

      Материал последователен, а домашние задания продуманные. Домашние задания не такие сложные, как может показаться.

    • Курс по Node.js

      все отзывы

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

    • Курс по Node.js

      Оценки от разработчиков, которые участвовали в курсе

      все отзывы

    Курс регулярно обновляется. Все отзывы относятся к последней версии курса.

    • Если объяснения будут вам непонятны
    • Если курсы не дадут вам новых знаний и умений
    • Если вы не сможете подключиться к системе онлайн-обучения

    …то вы сможете получить деньги назад.

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

    У нас большой опыт работы с самыми разными компаниями: как маленькими, так и IT-гигантами.

    • При записи нужно выбрать способ оплаты «счёт на компанию», и документы будут автоматически сгенерированы: договор, акт и счёт.
    • Для зарубежных компаний выдаём инвойс на английском языке.
    • Физическим лицам даём справку об оплате, если нужна компании для компенсации расходов.

    Также можно сделать налоговый вычет при оплате переводом на банковский счёт: детали для РФ.

    Подписаться на уведомления по курсу

    Набор на этот курс открывается каждые 3 недели.

    Вы можете запросить уведомление:

    Мы рассылаем уведомления только когда вы их запрашиваете, вы можете отказаться в любой момент. Подписываясь на рассылку, вы соглашаетесь с политикой конфиденциальности. Мы не передаём email третьим лицам.

    Если остались вопросы – посмотрите в часто задаваемых, напишите в комментариях внизу этой страницы или на почту [email protected] (ответ обычно в течение дня), а если срочно — задайте по телефону +7-903-5419441.

    Изучаем Node.JS

    Скачать бесплатно самоучители и видео по программированию.

    Изучаем Node.JS. Быстрый старт


    • Видеокурс: Создание веб-приложения на Node.JS с нуля
    • Автор:
      В. Минин
    • Год издания: 2021
    • Язык видеокурса: Русский
    • Формат: MP4

    Почему Node.JS получила и продолжает набирать такую популярность у веб-разработчиков? Эта платформа позволяет использовать язык JavaScript для разработки веб-приложений, как на стороне клиента, так и на стороне сервера. Если раньше JavaScript был скриптовым языком исключительно для фронтенд-разработки, то сейчас это полноценный язык программирования. Теперь его используют и в бэкенд-разработке, а универсальным он стал благодаря как-раз появлению платформы Node.JS.

    Больше всего времени в работе веб-приложений тратится на выполнение запросов к базе данных. И Node.JS используют для создания быстрых приложений, которые обрабатывают огромное количество одновременных запросов. Это протекает асинхронно, не прерываясь на отклик для «медленных» запросов, и не блокируя загрузку.

    И, конечно, эти технологии стали привлекательны для разработчиков сайтов, где требуется бесперебойная работа с миллионами посетителей. И понятно, почему так высок спрос на фулстек-разработчиков (фронтенд + бэкенд). В их арсенале обязательно имеются JavaScript и Node.JS. Этот видеокурс проложит самую короткую дорогу в фулстек-разработку.

    Из видеокурса вы узнаете, как установить Node.JS, получите базовые навыки работы в этой платформе.

    Освоите основные возможности и функционал Node.JS на практике. Вы напишите свои первые серверные скрипты и сможете проверить результаты вашей работы запуском js-файлов.

    Скачать видеокурс

    Node.JS. Быстрый старт


    Освоение вёрстки сайтов с нуля


    • Курс: Делаем сайт. Освоение вёрстки HTML и CSS
    • Год издания: 2020
    • Формат: MP4

    Как научиться делать сайты своими руками и стать вебмастером? Этот курс содержит всё самое необходимое. Вначале нужно обязательно освоить вёрстку сайта на HTML и CSS, а первый сайт вы сделаете прямо в ходе обучения.

    Читать подробнее:

    Делаем сайт на HTML и CSS

    Как зарабатывать на создании сайтов


    • Видео: Зарабатываем на создании сайтов. Руководство фрилансера
    • Год издания: 2020
    • Формат: MP4

    Готовое руководство для фрилансера по заработку на создании сайтов под заказ. Большинство начинающих фрилансеров совершают одни и те же ошибки. Данное руководство покажет вам, как их избежать и стать успешным.

    Читать подробнее:

    Зарабатываем на создании сайтов

    Осваиваем компьютерную графику


    • Видео: Изучаем Blender
    • Год издания: 2021
    • Формат: MP4

    Это единственная бесплатная программа для создания анимации, а её функционал включает инструменты для монтажа видео и работы со звуком. В программе можно работать, как с обычной, так и с 3D-графикой.

    Читать подробнее:

    Изучаем софт по компьютерной графике



    в начало страницы

    Сообщить друзьям


    Изучите Node.js | Codecademy

    Бесплатно

    Курс

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

    4.2

    4.21 из 5 звезд Начало

    89 183 зарегистрированных учащихся

    Об этом курсе

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

    Программа

    4 урока • 2 проекта • 3 теста

    Начало

    Платформа

    Практическое обучение

    Не просто смотрите или читайте о том, как кто-то другой программирует, — пишите свой собственный код жить на нашей интерактивной онлайн-платформе. Вы даже получите рекомендации на основе ИИ о том, что вам нужно просмотреть, чтобы не сбиться с пути.

    Checker Dense

    Проекты этого курса

    • Проект

      Message Mixer

      Пришло время научиться бегло работать с модулями JavaScript. В этом проекте мы собираемся попрактиковаться в создании модульной программы в среде Node. js, чтобы вы могли отточить свои навыки и чувствовать себя уверенно, применяя их в реальном мире. Почему? Вы не хотите копировать и вставлять свои функции из файла в файл. Научитесь повторно использовать их, экспортируя и импортируя. Что дальше? Микшер, создание глупых предложений и больше JavaScript. Ты получил это!

    • Проект

      Камень-ножницы-бумага

      Попрактикуйтесь в создании HTTP-сервера с помощью Node.js, чтобы создать онлайн-игру «Камень-ножницы-бумага»!

    Diagonal A Dense Познакомьтесь с создателем курса

    Познакомьтесь с полной командой Mini Arrow Right IconChecker Dense

    Дживон Шин

    Старший разработчик учебных программ в Codecademy

    Дживон — старший разработчик учебных программ в Codecademy. Она создала курсы в каталоге веб-разработки по таким языкам, как JavaScript, PHP и CSS, фреймворкам, таким как React и Node.js, и карьерному пути фронтенд-инженера. Она также создала курсы по p5.js, инструментам сборки и Intro to UI and UX Design.

    Познакомьтесь с полной командойMini Arrow Right Icon

    Рейтинги и обзоры курса Learn Node.js

    4.2

    4.21 из 5 звезд 876 оценок

    1. 5 звезд

      54%

    2. 4 звезды

      25 %

    3. 3 звезды

      14%

    4. 2 звезды

      3%

    5. 1 звезда

      9 0002 4%

    Наши учащиеся работают по адресу

    • Логотип Google
    • Логотип Meta
    • Логотип Apple
    • Логотип EA
    • Логотип Amazon
    • Логотип IBM
    • Логотип Microsoft
    • Логотип Reddit
    • Логотип Spotify
    • Логотип Uber
    • Логотип YouTube
    • Логотип Instagram
    Checker Dense

    Разблокировка дополнительные функции с платным планом

    • Icon Projects

      Практические проекты

      Проекты с пошаговыми инструкциями, которые помогут вам укрепить навыки и концепции, которые вы изучаете.

    • Значок викторины

      Оценки

      Тесты с автоматической оценкой и мгновенная обратная связь помогут вам укрепить свои навыки во время обучения.

    • Значок сертификата

      Сертификат об окончании

      Получите документ, подтверждающий, что вы прошли курс или путь, которым вы можете поделиться со своей сетью.

    Посмотреть цены и планы

    Присоединяйтесь к более чем 50 миллионам учащихся и начните изучать Node.js уже сегодня!

    Начало

    Часто задаваемые вопросы о Node.js

    • Node.js — это серверная среда выполнения с открытым исходным кодом. Он кроссплатформенный, поэтому вы можете запускать его в Windows, macOS и Linux, и он использует язык программирования JavaScript.

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

    1. Чаты в реальном времени

    Node.js использует мощные API событий, которые упрощают управление событиями на стороне сервера и push-уведомлениями, которые широко используются в приложениях реального времени.

    2. Одностраничные приложения

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

    3. Архитектура микросервисов

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

    Темы, рассмотренные в этом руководстве по Node.js

    • Что такое Node.js?
    • Начало работы с Node.js
    • Экспресс-руководство по Node.js
    • Node.js MongoDB
    • Node.js MySQL
    • Аутентификация веб-токена JSON с помощью Node.js
    • Node.js Экспресс
    • Node.js Вопрос интервью

    1. Что такое Node.js?

    Node.js — это бесплатная платформа на основе JavaScript с открытым исходным кодом, используемая для разработки ряда веб-приложений и веб-страниц. Большинство разработчиков предпочитают его другим серверным платформам, таким как Java и PHP. Если вы новичок в Node.js или хотите ускорить его основные концепции, это руководство по Node.js познакомит вас с основными принципами Node.js, почему он используется, его различные части, Node Фреймворк .js Express, варианты использования и отраслевые тенденции.

    2. Начало работы с Node.js

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

    3. Учебное пособие по Node.js Express

    Node.js Express — это гибкая платформа веб-приложений, использующая промежуточное ПО для создания веб-серверов и управления ими. Он имеет набор функций, которые можно использовать для разработки как веб-приложений, так и мобильных приложений. В этом руководстве по Node.js вы узнаете обо всех функциях Node.js Express, а затем реализуете их в приложении Node.js для создания веб-сервера. Вы также узнаете, как создать базовый пример «Hello World» с помощью Express в этом руководстве по Node.js.

    4. Node.js MongoDB

    MongoDB — документно-ориентированная база данных NoSQL, написанная на C++. Он работает на концепции JSON-подобных документов с необязательными схемами. В этом руководстве по Node.js вы узнаете об основных концепциях MongoDB и о том, как подключить веб-сервер к базе данных MongoDB. Вы также узнаете, как создать веб-приложение, которое может изменять содержимое базы данных MongoDB.

    5. Node.js MySQL

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

    6. Аутентификация веб-токена JSON с помощью Node.js

    Веб-токен JSON (JWT) — это стандарт для передачи информации между двумя или более сторонами. Компактный размер JWT упрощает передачу через URL-адрес, параметр POST или внутри заголовка HTTP. В этом руководстве по Node.js вы узнаете все об основах JWT и его реализации в приложении Node.js. Вы также узнаете, как добавить уровень безопасности при доступе к различным маршрутам в веб-приложении Node.js.

    7. Вопросы и ответы на собеседовании по Node.js

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