Elettracompany.com

Компьютерный справочник
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Курсы по node js

Курс по Node.js

Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии.

О курсе

Этот курс посвящён профессиональной серверной разработке на 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 и другие, хранят все данные нашего приложения: товары, пользователей и так далее, и позволяют быстро искать среди них. Они используются почти во всех современных приложениях, исключая самые простые.

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

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

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

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

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

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

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

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

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

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

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

    Развёртывание и запуск приложения

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

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

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

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

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

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

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

    Онлайн-магазин с авторизацией, поиском товаров, чатом поддержки

    Курс по Node.JS (2018)

    Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии. Этот курс посвящён профессиональной Node.JS-разработке. В результате курса вы создадите реальный проект и, главное, хорошо разберётесь в Node.JS. Мы будем использовать современные практики разработки, а не те, которые, хоть и широко представлены в интернете, но давно устарели. Вы получите комплексное понимание, как строить архитектуру для Node.JS, какие задачи и как решать.

    Курс можно условно разделить на три части.

    Node.JS, главные «строительные блоки» разработчика.

    Разработка веб-сервисов на современных технологиях и фреймворках.

    Архитектура сложных приложений, организация проекта.

    Первая часть курса

    1. Фундаментальный Node.JS
      Здесь мы изучим особенности работы Node.JS, его важнейшие модули и приёмы разработки.
      • Настройка окружения, редактора, инструменты для разработки и отладки.
      • Модули: организация, подключение.
      • Встроенные модули http, path, fs, events и другие.
      • Все стадии жизни Node.JS-процесса, важные для разработчика.
      • Потоки в Node.JS, частые ошибки при работе с ними.
    2. Сервер на Node.JS
      Создадим код и тесты для веб-сервера на Node.JS, а также разберёмся с асинхронностью.
      • Создание чат-сервера на Node.JS, частые ошибки.
      • Тестирование с использованием mocha, supertest и других фреймворков.
    3. Асинхронный код
      Изучим способы работы с асинхронным кодом, делающие его простым и удобным.
      • Асинхронность через callback’и, модуль async (old school).
      • Promises, Iterators, Generators, их особенности в Node.JS
      • Объединение Promises + Generators, «плоский» асинхронный код через библиотеку «co».

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

    Вторая часть курса

    1. Работа с базой данных
      Мы будем использовать MongoDB, однако изучаемые принципы применимы к другим базам, в частности MySQL, PostgreSQL, Redis и т.п.
      • База MongoDB, её особенности.
      • Объектно-ориентированная работа с MongoDB через Mongoose.
      • Полная картина работы с базой: запросы, схемы, валидация, плагины и middleware.
    2. Современный веб-сервис
      • Фреймворк Koa.JS: основы, роутинг.
      • Конфигурация через модуль config.
      • Koa.JS: структура middleware, готовые middleware – какие внешние модули для чего использовать.
      • CLS и его грамотное использование для получения текущего запроса в любом модуле.
      • Правильное логирование и обработка ошибок.
      • Улучшенное тестирование, загрузка фикстур.
    3. Gulp для запуска задач
      • Типы задач gulp, написание своих задач.
      • Запуск сервера, загрузка фикстур и тестирование через gulp
    4. Авторизация с Passport.JS
      • Модель пользователя, регистрация.
      • Сессии с Node.JS.
      • Passport.JS: сериализация, стратегии, авторизация.
      • CSRF-защита от взлома для форм и AJAX.
    5. COMET при помощи Socket.IO
      • Вебсокеты.
      • Обмен сообщениями при помощи Socket.IO.
      • Интеграция Socket.IO с Koa.JS, авторизацией и другими сервисами.
    6. По окончании этой части мы умеем создавать сервер со страницами, веб-сервисами, авторизацией и чатом.
      При желании можно дописать к нему новые сервисы и страницы, существующая архитектура позволяет это.
    Читать еще:  Научиться писать тексты курс для начинающих

    Третья часть курса

    1. Архитектура проекта
      В среднем Node.JS-проекте – сотни файлов. Это нормально, и даже вполне удобно, если их правильно организовать.
      • Архитектура HMVC для Koa.JS.
      • Организация шаблонов, тестов, клиентских скриптов.
    2. Выкладка Production
      • Организация git-репозитария и модулей.
      • Запуск с кластеризацией на все ядра процессора через PM2.
      • Обзор методов deployment’а.

    После окончания третьей части вы понимаете, как разрабатывается современный Node.JS-проект и можете производить такую разработку самостоятельно.

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

    Фундаментальный курс
    Node.js + Express + MongoDB

    Через 3 месяца вы незаменимый специалист с зарплатой мечты!

    Изучи Node.js — стань fullstack разработчиком

    3 месяца интенсива

    Изучи Node.js — посмотри на backend с другой стороны

    Узнай как JavaScript работает на backend

    Ты готов разобраться в Node.js полностью?

    Сделай это за 3 месяца

    Курс включает в себя

    Пройдя курс, вы научитесь

    Курс состоит

    Автор и преподаватель курса

    Senior Backend Developer

    Меня зовут Александр Кириченко, я работаю бекенд разработчиком уже более 12 лет. Из них 3 года работал в компании SoftServe.

    Начинал свою карьеру разработчиком и администратором баз данных Informix, Oracle.

    Постепенно переключился на бекенд разработку на Java. Как Java разработчик принимал участие в 7 enterprise проектах.

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

    В данное время работаю в E-commerce проекте. Занимаюсь проблемами микросервисной архитектуры и машинного обучения.

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

    В качестве хранилища данных — MongoDB — документоориентированную систему управления базами данных.

    На данный момент у меня более 4 лет опыта работы с MongoDB на нескольких проектах.

    Активно интересуюсь Big data и NoSQL технологиями, вопросами разработки высоконагруженных приложений.

    Меня зовут Александр Кириченко, я работаю бекенд разработчиком уже более 12 лет. Из них 3 года работал в компании SoftServe.

    Начинал свою карьеру разработчиком и администратором баз данных Informix, Oracle.

    Постепенно переключился на бекенд разработку на Java. Как Java разработчик принимал участие в 7 enterprise проектах.

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

    В данное время работаю в E-commerce проекте. Занимаюсь проблемами микросервисной архитектуры и машинного обучения.

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

    В качестве хранилища данных — MongoDB — документоориентированную систему управления базами данных.

    На данный момент у меня более 4 лет опыта работы с MongoDB на нескольких проектах.

    Активно интересуюсь Big data и NoSQL технологиями, вопросами разработки высоконагруженных приложений.

    0 0 голоса
    Рейтинг статьи
  • Ссылка на основную публикацию
    ВсеИнструменты 220 Вольт