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

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

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

Подробнее

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

Курс состоит из 8 лекционных и 7 семинарских занятий. Для успешной сдачи курса студентам необходимо самостоятельно разработать и сдать небольшой web-проект. Техническое задание выдается в начале курса. Заранее перед каждым семинаром студентам выдается домашнее задание. Каждое домашнее задание сопровождается описанием необходимых работ и разбалловкой.

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

Для успешной аттестации по данному курсу студентам необходимо набрать пороговый рейтинг — 40 баллов. При пересчете баллов студенты могут получить итоговую оценку: 0–39 неудовлетворительно, 40–59 удовлетворительно, 60–79 хорошо, 80–100 отлично.

Подробнее

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

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

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

Савва Демиденко Савва Демиденко

Выпускник Технопарка. Серверный разработчик платформы ivi.ru.

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

Инженер-программист, занимаюсь разработкой 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. Кеширование.   + ДЗ №6 + ДЗ №5 + ДЗ №7

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