Основы веб-разработки

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

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

Какие знания нужны

Как проходят занятия

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

Как поступить?

Регистрация
Заполни заявку и регистрируйся на курс до 10:00 13-го сентября
Тестирование
Ссылка на тест придет на почту 14-го сентября. Пройди тест до 10:00 16-го сентября
Зачисление
Письмо о зачислении придет на почту каждому студенту 16-го сентября
Начало обучения
Обучение начнется на неделе с 17-го сентября согласно расписанию

Вопросы по обучению

Отборочный тест

 

Требования к поступающим

Поступить могут студенты и аспиранты всех курсов и факультетов МФТИ, знающие какой-либо язык программирования.

Оборудование для обучения

Компьютер, возможность подключиться к беспроводной сети для выхода в сеть Internet.

Нагрузка в неделю

4 ак. часа в неделю без учета времени на выполнение домашнего задания.

Место проведения

МФТИ.

Стоимость обучения

Обучение бесплатно.

Моего вопроса тут нет :(

Другие вопросы можно посмотреть здесь.

Программа

Лекция № 1. Введение + сетевые протоколы

История развития интернета.
Направления развития современного ПО и web-приложений.
Направления деятельности и развития: разработка, инфраструктура, архитектура.
Адресация в интернете, URL, домены.
HTML страницы, гиперссылки, формы.
Протокол TCP, соединения и надежная доставка данных.
DNS - домены, зоны и делегирование.
Протокол HTTP - управление передачей документов.
Формат HTTP пакетов.
Методы и заголовки HTTP запросов, коды ответа сервера.
Содержимое тела запросов и ответов, x-www-form-urlencoded.
Кеширование в протоколе HTTP/1.0

Лекция № 2. Web серверы

Общая схема работы веб сервера: сокеты, запросы, файлы, логи.
Использование сервера для отдачи файлов.
Основы конфигурации сервера: server (virtual host), location, document root
. Понятие о MIME и Content-Type.
Модели обработки запросов.
Сравнение производительности web серверов.
Web сервер как сервер приложений.
Интерфейсы запуска программ: CGI, WSGI, mod_*, FastCGI.
Протокол CGI: передача GET и POST параметров. Переменные окружения.
Протокол WSGI: приложения и middleware. Как запустить WSGI.
Утилиты Werkzeug, Paste.
Frontend и backend серверы.

Семинар № 1. Подготовка инфраструктуры

Структура проекта. Создание нового django-приложения.
Настройка сервера nginx для отдачи статических файлов.
Настройка gunicorn для запуска WSGI скриптов.
Настройка nginx для проксирования запросов.
Настройка кеширования и балансировки.
Исследование производительности полученных конфигураций.
Создание простейшего django приложения

Лекция № 3. Серверная разработка ч.1: MVC; роутинг и контроллеры в Django

Концепция MVC
Принципы работы приложения в Django
Роутинг запросов
Контроллеры в Django, class-based-views
Работа с шаблонами в Django
Наследование шаблонов, встроенные теги и фильтры

Семинар № 2. Создание простейшей readonly-части проекта

Создание и настройка приложения в django.
Создание и настройка моделей
Правильное конфигурирование роутинга в urls.py
Создание основных контроллеров
Создание шаблонов, правильная вложенность шаблонов

Лекция № 4. Обработка пользовательских данных

Способ ввода данных пользователем
Валидация введенных пользователем данных
Формы в html и в django
Создание и редактирование объектов пользователем
Авторизация в django
Основы django ORM
Понятие QuerySet, фильтры, сортировка
Javascript-виджеты

Семинар № 3. Добавление функционала по созданию и модификации данных пользователями

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

Лекция № 5. html, css, javascript

Основные понятия html
Структура документа
Блочные и строчные теги, принципы отрисовки документа
Отступы, позиционирование, основные приемы
CSS: правила подключения, селекторы, основные свойства
Bootstrap как css-фреймворк
Работа с javascript, основы
Возможности jQuery
Ajax-запросы: методология, рецепты

Семинар № 4. Работа с html, css и javascript в проекте

Верстка главной страницы
Верстка прочих страниц сайта
Правильное подключение и применение css, js
Реализация функционала, использующего jQuery

Лекция № 6. Серверная разработка

Загрузка файлов пользователями
AJAX, JSON
Генерация ответа в JSON-формате
ManyToMany
ContentTypes, Generic relations
ModelManager, Model QuerySet

Семинар № 5. Серверная разработка ч.2

Использование ManyToManyField
Использование Generic Relation
Аггрегирование данных с помощью annotate, aggregate
Реализация пользовательских действий с помощью AJAX+JSON
Использование management commands, наполнение базы тестовыми данными

Лекция № 7. Дополнительные темы. В глубь Django

Конфигурация Django.
Скрипт управления django приложением.
Management commands
Middleware. Стандартные middleware. Защита от csrf.
Декораторы в python. Стандартные декораторы для view.
Class Based Views. Отображение списка объектов.
Pagination. Отображение Paginator в шаблоне.
Расширение фильтров и тэгов в шаблонизаторе.
Inclusion tags.
Стандартные приложения: административная консоль, sites, content types.
Оптимизация производительности: кеширование, денормализация.

Семинар № 6. Доработка проекта

Практика полностью посвещена ответам на вопросы студентов.

Лекция № 8. Современные технологии: Comet, NoSQL, Очереди, Поиск

Персистентные соединения: WebSockets, LongPolling, ServerPush, Comet.
Периодический запуск программ. Cron.
Очереди сообщений и сервера задач. ActiveMQ, Celery.
Полнотекстовый поиск. Использование Sphinx.
Sphinx как engine для MySQL. Sphinx как отдельный сервер. Sphinx в Django.
Особенности хранения данных в web-приложениях.
Назначение NoSQL, отличия от реляционных баз.
Обзор наиболее распространенных: Redis, Memcached.

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

Полнотекстовый поиск. Sphinx.
Кеширование в Memcached.
Использование Management команд в Django.
Периодический запуск программ.

Экзамен № 1. Защита семестрового проекта

Защита семестрового проекта

Пересдача № 1. Пересдача

Пересдача