Длительность курса: 10 недель
Просмотры: 26
Период проведения: c 10 июня 2021 г. по 30 августа 2021 г.
Курс завершён.
Курс посвящен разработке серверных веб-приложений в экосистемах языков программирования на примере JavaScript (Node.js) в сравнении с языком PHP. Освойте его, чтобы стать частью профессионального сообщества бэкэнд-разработчиков на набирающей популярность мощной JavaScript-платформе Node.js.
Преподаватель
О курсе
Цель курса – обеспечить освоение системы знаний и умений, необходимых для решения профессиональных задач в области разработки современных серверных веб-приложений.
В результате обучения слушатели смогут анализировать код серверного веб-приложения, сравнивать тексты серверных сценариев на разных языках, использующих разные библиотеки и фреймворки, реализовывать модель серверного веб-приложения (RESTful-сервис, бот, MVC-архитектура), выполнять развертывание серверного веб-приложения, осуществлять модульное и интеграционное тестирование серверного сценария.
В курсе используются инновационные технологии обучения: мультиязыковое обучение, скринкасты, вебинары, интерактивные задания, онлайн-редакторы и репозитории кода для коллаборативного обучения.
Формат
В состав курса входят видеолекции, скринкасты, онлайн-тестирование. Длительность курса составляет 10 недель. Трудоемкость курса – 4 зачетных единицы. Средняя недельная нагрузка на обучающегося – 14 часов.
Информационные ресурсы
Государев, И.Б. Введение в веб-разработку на языке JavaScript [Электронный ресурс] : учебное пособие / И.Б. Государев. — Электрон. дан. — Санкт-Петербург : Лань, 2019. — 144 с. — Режим доступа: e.lanbook.com/book/118648. — Загл. с экрана.
Пауэрс Ш. Изучаем Node. Переходим на сторону сервера. 2-е изд., доп. и перераб. — СПб.: Питер, 2017. — 304 с.
Каскиаро М., Маммино Л. Шаблоны проектирования Node.js / пер. с анг. А. Н. Киселева. – М.: ДМК Пресс, 2017. – 396 с.
Янг А., Мек Б., Кантелон М. Node.js в действии. 2-е изд. — СПб.: Питер, 2018. — 432 с.
Флэнаган Д. JavaScript. Подробное руководство, 6-е издание. — Пер. с англ. — СПб: Символ-Плюс, 2012. — 1080 с.
Закас Н. ECMAScript 6 для разработчиков. — СПб.: Питер, 2017. — 352 с.
Электронные ресурсы
JavaScript
Современный открытый учебник Javascript.ru
Блог на коллективном ресурсе разработчиков
Выразительный JavaScript
Вводное руководство по Express
PHP
Блог на коллективном ресурсе разработчиков
Вводный учебник от создателей и программистов PHP
Учебник для начинающих
Учебное пособие по паттернам проектирования на PHP
CMS
Блог на коллективном ресурсе разработчиков
Самоучитель WordPress
Введение в Ghost
Репозиторий Ghost
Требования
Для успешного освоения курса необходимо обладать следующими знаниями, умениями и навыками:
ЗНАНИЯ:
на уровне представлений:
- основы синтаксиса JavaScript;
- основные алгоритмические структуры;
- основные понятия объектно-ориентированного программирования;
УМЕНИЯ:
теоретические:
- управление зависимостями и пакетами в среде Linux;
практические:
- исполнять команды в командной строке Linux, в том числе выполнять программы и устанавливать пакеты;
- разворачивать виртуальные машины в VirtualBox;
НАВЫКИ:
Работать с программным кодом в системе управления репозиториями на примере GitHub.
В процессе обучения используется открытое ПО: nodejs.org (инструкция по установке kodaktor.ru/nodejs) и общедоступный инструмент (онлайн REPL/онлайн IDE) для запуска кода на различных языках: repl.it
Результаты обучения
- Возможность применения технологий разработки серверных веб-приложений (РО-1.1)
- Возможность применения баз данных для хранения элементов состояния веб-приложений (РО-1.2)
- Знание синтаксиса языка программирования JavaSript (РО-2.1)
- Умение анализировать и применять серверные веб-технологии и системы управления контентом для развёртывания серверных веб-приложений (РО-3.1)
- Умение реализовывать базовые алгоритмические конструкции на языке программирования JavaScript (РО-4.1)
- Умение развёртывать базы данных на основе решений контейнеризации (РО-4.2)
- Владение навыком выбора адекватных технологий разработки серверных веб-приложений (РО-5.1)
- Владение навыком подключением баз данных к веб-приложениям через ORM и другие интерфейсы (РО-5.2)
Формируемые компетенции
09.04.04 Программная инженерия
Способность управлять программно-техническими, технологическими и человеческими ресурсами (ПК-3)
Способность управлять развитием БД (ПК-5)
Тема 1: Понятие бэкэнда и фронтэнда 13 вопросов
Тема 2: Языковые основы (современный JavaScript) 12 вопросов
Тема 3: Асинхронность 12 вопросов
- Веб-сервер и модель приложения на Node.js
- Веб-приложение VS веб-сервис и их размещение в доступе
- Выполнение запросов к веб-серверу
- Запуск серверного веб-приложения на модуле http платформы Node.js на локальном хосте
- Порт и сетевой интерфейс
- Локальная отладка серверного веб-приложения на модуле http платформы Node.js
- Объекты запроса и ответа (req, res)
- Основы маршрутизации
- Заголовки запроса. Заголовок host
- Политика CORS и заголовки ответа
- Блокирующий код в обработке запроса
- Выдача статики и обработчик по умолчанию
Тема 5: Библиотека Express 17 вопросов
- Введение в Express. Альтернативы и характеристики
- Локальное развёртывание приложения на Express
- Преобразование демонстрационного приложения на http
- Удалённое редактирование проекта (учебный и девелоперский опыт)
- Запуск приложения в составе Jupyter Notebook
- Понятие middleware. Виды middleware и их стек
- Пример передачи данных в middleware. Пример развёртывания приложения на сервисе Heroku
- Пример развёртывания на виртуальном сервере. Пример использования CORS middleware и JSON
- Создание express.Router и дерева маршрутов
- Согласование содержимого и динамическое добавление маршрутов
- Основы маршрутизации: пример с sinatra
- Простейшая обработка POST-запроса в Express
- Запуск приложения в виде службы за обратным прокси-сервером. SSL-сертификат
- Микросервисы. Serverless
- Микросервисы. Seneca и Hydra
- Особенности и характеристики экосистемы PHP
- Стек LAMP, MAMP и подобные им в сравнении с MEAN и подобными. Развёртывание стека
- Модель веб-решения на PHP. Простой сценарий и приложение
- Выдача контента клиенту с точки зрения PHP и Node.js
- Современные PHP-фреймворки
- Основы RESTful API. Предпосылки возникновения REST
- Основы RESTful API. Требования к API
- Использование микрофреймворка для создания REST-сервиса
- Контейнеризация приложения. Использование docker-compose для реализации паттерна Sidecar
Тема 7: Документоориентированные БД и JSON 0 вопросов
- Преимущества документоориентированных БД. Использование формата JSON
- Формат BSON и СУБД MongoDB. Развёртывание Mongo
- Использование Mongo в облаке
- Понятия CRUD и ORM
- Создание моделей в рамках MVC
- Генерация REST API с помощью инструментов автоматизации на примере LoopBack
- Пример сохранения информации в cookie с помощью Node.js
- Механизмы сессий в PHP и Node.js
- Обработка ошибок и исключений в Express
- Тестирование маршрутов со стороны клиента
- Описание сценария тестирования с помощью DSL
- Тестирование приложения со стороны сервера. CI/CD
- Пример тестирования с помощью автоматизации браузера (E2E)
- Масштабирование как ответ на возрастание нагрузки. Использование кластера.