Голосов: 0
#1
Node.js: серверный JavaScript
Мы научим вас разрабатывать сайты, веб-сервисы и самостоятельные приложения на Node.js, а также хранить и использовать данные в популярных базах данных.
В результате обучения и прохождения этого курса вы получите знания, навыки и умения для того, чтобы начать работу junior Node.js-разработчиком
Пройдя курс, вы научитесь
- Вести разработку на JavaScript в среде Node.js.
JavaScript теперь используется и как серверный язык разработки. Среда Node.js позволяет любому разработчику, знакомому с JavaScript, начать разрабатывать серверную часть для приложений любой сложности. Начиная с основ, в процессе курса мы рассмотрим самые важные области Node.js.
- Использовать технологию WebSocket и библиотеку socket.io.
Приложения реального времени в настоящее время — практически стандарт. Нет никакой необходимости в перезагрузках страницы, и не важно, нужно ли вам написать простенький чат, или высоконагруженный сервис. Сокеты помогут настроить обмен данными между клиентом и сервером с невероятной скоростью.
- Разворачивать готовый проект на хостинге.
Для приложений, разработанных в среде Node.js, классический хостинг не подходит. Мы научимся разворачивать ваше приложение прямо из git-репозитория с максимальный комфортом на самых популярных подходящих площадках.
- Тестировать свой код.
Тестирование кода — еще один очень важный момент, который нельзя обойти стороной, особенно, когда пишется серверная часть приложения. Написание тестов на существующий код повысит его надежность, а разработка через тестирование практически исключает возможность появления критических ошибок вашего приложения в дальнейшем.
- Применять практики серверного рендеринга.
Серверный рендеринг — отнюдь не прихоть, а часто жизненно важный момент вашего приложения. В некоторых случаях, клиентский рендеринг делает SEO-продвижение попросту невозможным, а если вы хотите добиться максимальной скорости работы приложения при огромных количествах посещений, то серверный рендеринг — однозначно, ваш выбор.
- Использовать фреймворки Express.js и Koa.js в разработке.
В среде Node.js, помимо модулей и подключаемых библиотек, существуют два замечательных фреймворка, которые значительно облегчают процесс разработки. Более того, некоторые из подключаемых библиотек, написаны именно под фреймворки. Мы рассмотрим два самых популярных и известных фреймворка для разработки в среде Node.js.
- Проводить аутентификацию и авторизацию, грамотно хранить персональные данные.
В современном вебе практически не осталось места анонимности, при этом идентификация пользователей — крайне важный момент. Получаемые персональные данные должны храниться надежно и не использоваться без лишней необходимости. Мы рассмотрим лучшие практики и дополнительные библиотеки, облегчающие и повышающие надежность в этой части ваших приложений.
- Работать с реляционными и нереляционными базами данных под Node.js.
При разработке серверной части приложения особое внимание стоит уделить работе с данными. Выбор базы данных для проекта — крайне важный процесс, поэтому мы рассмотрим самые часто используемые типы баз данных. Для примера нереляционных баз будет использована MongoDB, для примера реляционных — PostgreSQL.
Введение в Node.js и настройка рабочей среды
Модули, файловая система и потоки
- Знакомство с преподавателями, наставниками, и одногруппниками
- Правила работы с кодом на курсе (линтер и Git, знакомство и работа с NPM)
- Настройка рабочей среды, выбор инструментов для разработки и отладки
- Основная информация о Node.js (установка и т.д.)
- Организационные вопросы.
Работа с асинхронностью в Node.js
- Система модулей в Node.js.
- Знакомство с основными модулями Path, System, Console, Readline и др.
- Работа с файлами
- Работа с потоками чтения и записи: pipe()
- Примеры работы с потоками. Модули through2 и through2-parallel
- EventLoop в Node.js.
- Модуль EventEmitter. Создание и обработка собственных событий
- Утилита async
- Promises. Модуль mz. Применение promisify
- Генераторы
- Async/Await
Работа с шаблонами
Express.js
- Основные шаблонизаторы
- Рендеринг шаблонов с изменяемыми данными, частичный рендеринг, работа с шаблонами “на лету”
- Особенности работы с Pug
- Особенности работы с EJS
- Особенности работы с Handlebars
Koa.js
- Знакомство с фраемворком Express.js
- Роутинг
- Обработка форм и загрузка файлов на сервер
- Промежуточное ПО
- Отправка электронной почты
- Cookie-файлы в Express и сеансы
- Установка и начало использования
- Маршрутизация и перенаправление
- Шаблонизация и работа с файлами
- Работа с сессиями с помощью Cookies
- Практический пример создания сайта по примеру домашнего задания
REST API
Работа с реляционными БД (на примере PostgreSQL)
- Понятие API
- Что такое REST и Restful
- Пример построения простого API
- Обработка ошибок
Работа с нереляционными БД (на примере MongoDB)
- PostgreSQL - самая популярная реляционная база данных
- Настройка и запуск собственной базы данных PostgreSQL на локальном сервере
- Основные способы подключения
- Связывание базы данных с концепциями объектно-ориентированных языков программирования с помощью ORM Sequelize
- Инструменты для работы с данными - PGAdmin
- Mongo DB - самая популярная нереляционная база данных. Отличие реляционных БД от нереляционных
- Особенности Mongoose - модели и коллекции
- Настройка и запуск собственной базы.
- Использование сервиса mLab для дистанционного хранения информации, данных Mongo DB на локальном сервере
- Инструменты для работы с данными
- Mongo DB в связке с Mongoose - ООП в работе с базой данных, пример API
Сокеты и работа с ними
Авторизация и аутентификация
- Начинаем работу с модулем ws
- Реализация простого Websocket чата
- Библиотека Socket.IO
- Простой чат с Socket.IO и Express.js
- Пример чата с несколькими комнатами
Тестирование
- Авторизация и аутентификация. В чем различие?
- Модуль Crypto и пакет bCrypt
- Работа с Passport.js
- Примеры аутентификации с локальной стратегией Passport.js и GitHub
- Использование JWT для авторизации к API
- Зачем нужно тестирование
- Виды тестов
- Тестируем Express приложение
- Mocha
- Chai
Deployment и все, что с ним связано
Процесс написания ботов (мастер-класс)
- Развертывание из Git-репозитория
- Автоматизация развертывания
- Поддержание работы, максимизация доступности и производительности приложения
- Nginx-сервер в связке с Node.js
- Практика развертывания приложения на некоторых хостингах (Heroku, DigitalOcean, VDS, C9)
- Что такое бот программа
- Написание чат-бота под Telegram
- Библиотека node-telegram-bot-api
- Отправка ботом медиаконтента, видео, музыка, картинки и т.д.
- Создание клавиатуры и обработка команд
Серверный рендеринг
Закрытие курса
- Изоморфные приложения — переходим на серверный рендеринг
- Преимущества серверного рендеринга
- Особенности серверного рендеринга React.js
- Особенности серверного рендеринга Vue.js
- Практика перехода на серверный рендеринг на примере большой домашней работы
- Что делать после курса?
- Опенсорс
- Тематические сообщества
Для просмотра содержимого вам необходимо зарегистрироваться!Для просмотра содержимого вам необходимо зарегистрироваться!
Последнее редактирование модератором:
- Статус
- В этой теме нельзя размещать новые ответы.