Web-технологии

Весна 2021

Цель курса — всестороннее изучение устройства и принципа работы современных web приложений и сети WWW в целом, а также получение практических навыков web разработки. Акцент в курсе сделан на разработку серверного ПО, т.е. backend разработку.

Описание
Курс web-технологии посвящен разработке web-приложений среднего масшатаба, иначе говоря сайтов. Курс является в большой мере обзорным и знакомит будущих web-разработчиков с широким спектром технологий и общими принципами работы web-приложений. По сути курс нужен для того, чтобы “погрузить” студентов в тематику web разработки и позволить им в дальнейшем сконцентрироваться на конкретных технологиях, не теряя из вида общую архитектуру.

Курс состоит из 8 лекционных и 7 семинарских занятий. Для успешной сдачи курса студентам необходимо самостоятельно разработать и сдать небольшой web-проект. Техническое задание выдается в начале курса. Заранее перед каждым семинаром студентам выдается домашнее задание. Каждое домашнее задание сопровождается описанием необходимых работ и разбалловкой.
Подробнее
Чему научитесь
По завершении курса студенты научатся разрабатывать web приложения на языке python, научаться использовать MVC фреймворки, получат опыт верстки HTML страниц с использованием CSS фреймворка Bootstrap. Помимо разработки студенты научатся устанавливать и настраивать web-сервера, проектировать модель данных с помощью ORM, получат навык отладки web приложений на всех этапах исполнения.
Подробнее

Преподаватели

Динар Сабитов Динар Сабитов

Выпускник Технопарка. Руководитель группы разработки игровой платформы my.games

Николай Мелешенко Николай Мелешенко

Инженер-программист, занимаюсь разработкой games.mail.ru и games.my.com, а так же сопутствующих в...


Подробнее

Дмитрий Руднев Дмитрий Руднев

Программа

занятие Часы в ауд. + сам. работа

Лекция №1: Архитектура Web-приложений. HTML.  
+ ДЗ №1

Понятие URL и документа. Абсолютные и относительные URL. Клиент-серверная архитектура. Основы HTML разметки.
Домашнее задание №1: Статическая верстка
Сверстать главную страницу проекта и страницу регистрации в статическом виде с использованием Twitter Bootstrap.
4 ак. ч. + 3 ак. ч. СР

Семинар №1: CSS. Верстка с использованием Bootstrap.  

CSS селекторы и стили. Приоритеты стилей и каскадирование. Позиционирование элементов. Использование Twitter Bootstrap. Разбор ДЗ1.
4 ак. ч. + 2 ак. ч. СР

Лекция №2: Сетевые протоколы. HTTP.  

DNS, TCP, TSL. Синтаксис HTTP запросов и ответов. Методы и коды ответа HTTP. Заголовки HTTP
4 ак. ч. + 3 ак. ч. СР

Лекция №3: Внутренняя архитектура web-сервера.  
+ ДЗ №2

Файлы и процессы сервера. Внутренняя архитектура сервера. Примеры конфигурации. Понятие location. Методы обработки сетевых соединений. Архитектура frontend - backend. Application сервера. Протоколы CGI, FastCGI, WSGI.
Домашнее задание №2: Обработка HTTP запросов
Спроектировать систему URL. Разработать необходимые view и шаблоны для отображения основных страниц. Реализовать логику входа и регистрации.
4 ак. ч. + 4 ак. ч. СР

Семинар №2: Routing и шаблонизация с использованием Django.  

Контроллеры в Django. Объекты HttpRequest и HttpResponse. Работа с HTTP заголовками в Django. Декораторы. Шаблонизация в Django. Разбор ДЗ2. Прием ДЗ1.
4 ак. ч. + 2 ак. ч. СР

Лекция №4: MVC Фреймворки.  

Компоненты MVC. Структура Django проекта. Конфигурация проектов. Маршрутизация URL. Контроллеры в Django. Объекты HttpRequest и HttpResponse. Работа с HTTP заголовками в Django. Декораторы. Шаблонизация в Django.
4 ак. ч. + 3 ак. ч. СР

Семинар №3: Работа с базой данных.  

Проектирование баз данных. Загрузка данных из базы. Создание и изменение объектов. Разбор ДЗ3. Прием ДЗ2.
4 ак. ч. + 3 ак. ч. СР

Лекция №5: СУБД и Django models.  
+ ДЗ №3

Работа с СУБД в Python. Работа с СУБД в Django. QuerySet. ModelManagers. Миграции баз данных
Домашнее задание №3: Работа с базой данных
Спроектировать базу данных проекта и наполнить ее тестовыми записями. Разработать view для отображения данных из базы.
4 ак. ч. + 2 ак. ч. СР

Контрольное занятие №1: Промежуточный показ проекта.  

Промежуточный показ проекта, сдача ДЗ 1 - 3.
4 ак. ч. + 4 ак. ч. СР

Семинар №4: Добавление данных.  

Описание форм в Django. Типы полей в формах Django. Валидация данных. Использование форм в контроллерах и шаблонах. CSRF. Разбор ДЗ4.
4 ак. ч. + 3 ак. ч. СР

Лекция №6: Типичные сценарии. Формы. Авторизация.  
+ ДЗ №4

Отображение страницы объекта. 404-страницы. Отображение списка объектов. Постраничное отображение. Progressive loading. GET и POST формы. Общий сценарий обработки форм. Перенаправления в HTTP. Basic HTTP Authorization. Механизм Cookie. Авторизация с использованием cookie.
Домашнее задание №4: Авторизация, Обработка форм
Реализовать основную логику сайта: добавления вопросов и ответов, используя Django Views и Django Forms. Необходимо учесть обработку и отображения ошибок ввода данных.
4 ак. ч. + 2 ак. ч. СР

Семинар №5: Авторизация в Django. AJAX в jQuery.  

Стандартные модели авторизации Django. Расширение модели пользователя. Стандартные контроллеры авторизации Django. AJAX запросы с использованием jQuery. Разбор ДЗ5. Прием ДЗ4.
4 ак. ч. + 2 ак. ч. СР

Лекция №7: AJAX. Real-Time-Messages. Cron. Кеширование.  
+ ДЗ №5 + ДЗ №6 + ДЗ №7

Сценарий проверки сессии. AJAX на стоне клиента. Особенности контроллеров для AJAX. Polling. Long-polling (comet). Server-push. WebSocket. Механизм обновления (Upgrade) соединений. Распределенный кеш Memcached. Выполнение offline cкриптов с помощью Cron.
Домашнее задание №5: Изображения и AJAX
Реализовать загрузку и отображение картинок в проекте. Используя технологию AJAX реализовать дополнительные действия пользователя: "лайки" вопросов, установку "правильного" ответа.
Домашнее задание №6: Настройка серверов
Подготовить структуру директорий проекта. Настроить nginx для отдачи статических файлов и проксирования запросов. Создать простейший WSGI скрипт. Измерить производительность полученной конфигурации.
Домашнее задание №7: Дополнительные функции
Используя mod_push, разработать доставку real-time сообщений о новых ответах. Используя кеширование в memcached и запуск скриптов по cron, реализовать информационные блоки "лучшие вопросы" и "лучшие пользователи".
4 ак. ч. + 3 ак. ч. СР

Семинар №6: Web-сервера. Создание рабочего окружения.  

Создание рабочего окружения. Настройка сервера. Разбор ДЗ6. Прием ДЗ5.
4 ак. ч. + 3 ак. ч. СР

Семинар №7: Дополнительные темы.  

Настройка кеширование в Django. Management commands в Django. Разбор ДЗ7. Прием ДЗ6.
4 ак. ч. + 2 ак. ч. СР

Контрольное занятие №2: Итоговое занятие. Экзамен  

На итоговом занятии студентам предстоит продемонстрировать и защитить проект
4 ак. ч. + 2 ак. ч. СР

Контрольное занятие №3: Пересдача  

На пересдаче студенты могут сдать задолженности по курсу.
4 ак. ч. + 1 ак. ч. СР

РАСПИСАНИЕ

Полное расписание