up
  • Russian

    course language

  • 10 weeks

    course duration

  • from 14 to 15 hours per week

    needed to educate

  • 4 credit points

    for credit at your university

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

About

Цель курса – обеспечить освоение системы знаний и умений, необходимых для решения профессиональных задач в области разработки современных серверных веб-приложений.
В результате обучения слушатели смогут анализировать код серверного веб-приложения, сравнивать тексты серверных сценариев на разных языках, использующих разные библиотеки и фреймворки, реализовывать модель серверного веб-приложения (RESTful-сервис, бот, MVC-архитектура), выполнять развертывание серверного веб-приложения, осуществлять модульное и интеграционное тестирование серверного сценария.
В курсе используются инновационные технологии обучения: мультиязыковое обучение, скринкасты, вебинары, интерактивные задания, онлайн-редакторы и репозитории кода для коллаборативного обучения. 

Format

В состав курса входят видеолекции, скринкасты, онлайн-тестирование. Длительность курса составляет 10 недель. Трудоемкость курса – 4 зачетных единицы. Средняя недельная нагрузка на обучающегося – 14 часов.

  1. Государев, И.Б. Введение в веб-разработку на языке JavaScript [Электронный ресурс] : учебное пособие / И.Б. Государев. — Электрон. дан. — Санкт-Петербург : Лань, 2019. — 144 с. — Режим доступа: e.lanbook.com/book/118648. — Загл. с экрана.
  2. Пауэрс Ш. Изучаем Node. Переходим на сторону сервера. 2-е изд., доп. и перераб. — СПб.: Питер, 2017. — 304 с.
  3. Каскиаро М., Маммино Л. Шаблоны проектирования Node.js / пер. с анг. А. Н. Киселева. – М.: ДМК Пресс, 2017. – 396 с.
  4. Янг А., Мек Б., Кантелон М. Node.js в действии. 2-е изд. — СПб.: Питер, 2018. — 432 с.
  5. Флэнаган Д. JavaScript. Подробное руководство, 6-е издание. — Пер. с англ. — СПб: Символ-Плюс, 2012. — 1080 с. 
  6. Закас Н. ECMAScript 6 для разработчиков. — СПб.: Питер, 2017. — 352 с.
  7. Электронные ресурсы
  8. JavaScript
  9. PHP
  10. CMS

Requirements

Для успешного освоения курса необходимо обладать следующими знаниями, умениями и навыками:

ЗНАНИЯ:
на уровне представлений:

  • основы синтаксиса JavaScript;
  • основные алгоритмические структуры;
  • основные понятия объектно-ориентированного программирования;

УМЕНИЯ: 
теоретические:

  • управление зависимостями и пакетами в среде Linux;

практические:

  • исполнять команды в командной строке Linux, в том числе выполнять программы и устанавливать пакеты;
  • разворачивать виртуальные машины в VirtualBox;

НАВЫКИ: 

  • Работать с программным кодом в системе управления репозиториями на примере GitHub.  

В процессе обучения используется открытое ПО: nodejs.org (инструкция по установке kodaktor.ru/nodejs) и общедоступный инструмент (онлайн REPL/онлайн IDE) для запуска кода на различных языках: repl.it

Course program

В курсе рассматриваются следующие темы:


Тема 1.  Введение. 
Понятия бэкэнда и фронтэнда. Протокол HTTP(S) и другие протоколы веба. Методы (глаголы): GET, POST, DELETE, PUT. Коды ответов веб-сервера. Эмуляция работы браузера с помощью клиента telnet. Основные приёмы работы с curl и приложением Postman.

Тема 2. Языковые основы (современный JavaScript)
Стандарт ECMAScript и его развитие. Транспиляция. Использование статической типизации с помощью TypeSript и Flow. Менеджмент зависимостей. Сборка бандлов на клиентской и северной стороне.

Тема 3.  Асинхронность.
Потоковый подход к обработке событий. Подписка слушателей и коммуникации между процессами и воркерами. Коллбэки, промисификация и синхронное ожидание промисов. Веб-сокеты. 

Тема 4. Модель приложения на Node.js и библиотека Express
Объекты Request и Response. Создание простого веб-сервера. Отдача статического контента, MIME-типы. Выдача HTTP-заголовков. Кроссдоменные запросы и политика CORS. Объект app. Создание простого веб-приложения. Основы серверной маршрутизации. Создание контроллеров. Разработка микросервиса.

Тема 5. Введение в разработку серверных приложений в экосистеме PHP
Развёртывание стека LAMP. Программные сущности PHP и модель современного PHP-приложения. Использование микрофреймворка для создания REST-сервиса

Тема 6. Подключение к базам данных. Аутентификация и авторизация.
Сравнение реляционных и документоориентированных БД на примере MySQL и MongoDB. Понятия CRUD и ORM. Создание моделей в рамках архитектуры MVC. Механизмы сессий в Node.js и PHP.

Тема 7. Системы управления контентом и шаблонизация
Структура и функции CMS. Популярные CMS на PHP и Node.js. Развёртывание и эксплуатация WordPress и Ghost. Языки шаблонов на примере pug и Twig. Создание представлений в рамках архитектуры MVC.

Тема 8. Тестирование серверных веб-приложений.
Модульное тестирование. Использование фреймворков Mocha и should. Бенчмаркинг, асинхронное тестирование, интеграционное  и e2e тестирование с помощью Puppeteer. 

Education results

  • Возможность применения технологий разработки серверных веб-приложений (РО-1.1)
  • Возможность применения баз данных для хранения элементов состояния веб-приложений (РО-1.2)
  • Знание синтаксиса языка программирования JavaSript (РО-2.1)
  • Умение анализировать и применять серверные веб-технологии и системы управления контентом для развёртывания серверных веб-приложений (РО-3.1)
  • Умение реализовывать базовые алгоритмические конструкции на языке программирования JavaScript (РО-4.1)
  • Умение развёртывать базы данных на основе решений контейнеризации (РО-4.2)
  • Владение навыком выбора адекватных технологий разработки серверных веб-приложений (РО-5.1)
  • Владение навыком подключением баз данных к веб-приложениям через ORM и другие интерфейсы (РО-5.2)

Formed competencies

09.04.04 Программная инженерия

  • Способность управлять программно-техническими, технологическими и человеческими ресурсами (ПК-3)
  • Способность управлять развитием БД (ПК-5)

Education directions

Отзывы о курсе

Государев Илья Борисович

Кандидат педагогических наук
Position: доцент факультета программной инженерии и компьютерной техники Университета ИТМО

course completion certificate

Certificate

По данному курсу возможно получение сертификата.

A participant certificate is usually issued upon reaching 60 % of the overall rating, subject to the delivery of works before a hard deadline. The honors certificate is usually issued upon reaching 90 % of the overall rating, subject to the delivery of the work before the soft deadline.

Similar courses