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.
Программа
Неделя 1 Введение в Node.js и настройка рабочей среды Знакомство с преподавателями, наставниками, и одногруппниками. Правила работы с кодом на курсе (линтер и Git). Настройка рабочей среды, выбор инструментов для разработки и отладки. Основная информация о Node.js (установка и т.д.). Организационные вопросы. Модули и файловая система Система модулей Node.js. Знакомство и работа с NPM. Потоки и pipe(). Знакомство с основными модулями Path, File System, Readline и др. REPL и модуль Console. Асинхронность в Node.js EventLoop в Node.js. Модуль EventEmitter. Создание и обработка собственных событий. Promises. Async/Await. Как избежать callback-hell на примере модуля Step. Неделя 2 Работа с шаблонами Основные шаблонизаторы. Рендеринг шаблонов с изменяемыми данными, частичный рендеринг, работа с шаблонами “на лету”. Особенности работы с Pug. Особенности работы с EJS. Особенности работы с Handlebars. Express.js Знакомство с Express.js. Шаблонизация с помощью Pug или Handlebars. Обработка форм и загрузка файлов на сервер. Промежуточное ПО. Отправка электронной почты. Cookie-файлы в Express и сеансы. Koa.js Установка и начало использования. Маршрутизация и перенаправление. Обработка ошибок и логирование. Шаблонизация и работа с файлами. Работа с сессиями с помощью Cookies. Компрессия. Неделя 3 REST API Понятие API. Что такое REST и Restful. Пример построения простого API. Обработка ошибок. Работа с реляционными БД (на примере PostgreSQL) Отличие реляционных БД от нереляционных PostgreSQL - самая популярная реляционная база данных Связывание базы данных с концепциями объектно-ориентированных языков программирования с помощью ORM postgresql-orm - легкий способ работать с PostgreSQL и Node.js Настройка и запуск собственной базы данных PostgreSQL на локальном сервере Инструменты для работы с данными - PGAdmin Практика написания SQL-запросов Работа с нереляционными БД (на примере MongoDB) Mongo DB - самая популярная не реляционная база данных Mongo DB в связке с Mongoose - ООП в работе с базой данных Использование сервиса mlab для дистанционного хранения информации Особенности Mongoose - модели и коллекции Настройка и запуск собственной базы данных Mongo DB на локальном сервере Инструменты для работы с данными - MongoChief Неделя 4 Сокеты и работа с ними Создаем HTTP сервер Начинаем работу с модулем ws Реализация простого Websocket чата Библиотека Socket.IO Простой чат с Socket.IO и Express.js Авторизация и аутентификация Общая информация о информационной безопасности. Модуль Crypto. Passport.js. Helmet. JWT. Тестирование Зачем нужно тестирование Виды тестов Тестируем Express приложение Mocha Chai Неделя 5 Deployment и все, что с ним связано Развертывание из Git-репозитория. Автоматизация развертывания. Поддержание работы, максимизация доступности и производительности приложения. Nginx-сервер в связке с Node.js. Практика развертывания приложения на некоторых хостингах (Heroku, DigitalOcean, VDS, C9). Процесс написания ботов (мастер-класс) Что такое бот программа Написание чат-бота под Telegram Неделя 6 Серверный рендеринг Изоморфные приложения — переходим на серверный рендеринг. Преимущества серверного рендеринга. Особенности серверного рендеринга React.js. Особенности серверного рендеринга Vue.js. Практика перехода на серверный рендеринг на примере большой домашней работы. Закрытие курса Что такое бот-программа? Написание чат-бота под Telegram.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы не можете скачивать файлы