/web-programming

Course on web programming taught at MIPT, 2014-2015

Primary LanguageHTML

Веб-программирование на Физтехе

Build Status

Спецкурс читался в МФТИ в Долгопрудном в 2014-2015 учебном году.

Реклама. Ещё на Физтехе читается курс по компьютерной безопасности и CTF. Их репозиторий, их группа в ВК.

Проект нашего ученика

Миптакар - сайт поиска попутчиков на Физтехе

Осенний семестр

29 октября. Какие языки и технологии используются на вебе. HTML. CSS. CSS-фреймворки. Хостинг для статического сайта.

5 ноября. Javascript. Управляющие конструкции, типы данных, примеры работы с деревом элементов. Библиотека JQuery. Github.io.

12 ноября. Введение в язык Python 3.

19 ноября. Протокол HTTP. Реализация своими руками: веб-фреймворк на голых сокетах. "Сокращатель ссылок". Фреймворк Flask: routing, шаблоны. "Блог". Тестирование Flask-приложения.

26 ноября и 3 декабря. Менеджер виртуальных машин Vagrant. Деплоймент на VPS через tmux и gunicorn. Тестирование Flask-приложений, Travis CI. Cookies, sessions. Передача и хранение паролей, HTTPS. Декораторы

Весенний семестр

20 февраля. Язык SQL. Sqlite3, работа с базой sqlite3 из Питона. Фреймворк Django: ORM, админский интерфейс базы

27 февраля. Django: статика, регистрация пользователей, ajax, JSON API, кастомизация админки, миграции базы, XSS

6 марта. Деплоймент: nginx, uWSGI, PostgreSQL, логгирование

13 марта. Графические компоненты (виджеты)

20 марта. Node.js: зачем нужна асинхронность. Npm. Автоматизация фронтенда: Bower, Grunt, JSHint, LESS, ES6

27 марта. Node.js, Express.js. Socket.io. Облачный хостинг: heroku

1 апреля. Гостевая лекция: Дмитрий Елисов о том, что бизнес надо делать на простых технологиях

8 апреля. Фреймворки для одностраничных приложений: концепция MVC, виртуальное DOM-дерево

15 апреля. Тестирование фронтенда: QUnit, Mocha, Karma. Тестирование API: requests. Selenium WebDriver

22 апреля. React.js. Кроме того, Плагины для Хрома. Букмарклеты

29 апреля. WordPress, создание интернет-магазина на WooCommerce

Что не рассказано на курсе

Вёрстка

  • Сетки, позиционирование. Декоративные элементы. Вёрстка меню
  • Вёрстка писем
  • Вёрстка для мобильных устройств
  • Вёрстка для печати

Фронтенд

  • Yeoman
  • Normalize.css
  • Препроцессоры HTML: Jade, HAML
  • Современные CSS-препроцессоры Sass, Stylus
  • Языки, компилируемые в JavaScript: CoffeeScript, Dart, Closure Compiler
  • Зависимости в JavaScript: AMD, Require.js, CommonJS, ES6-подход
  • Векторная графика на вебе: raphael, d3.js
  • Web Components, Polymer
  • Как лечить scrolling amnesia?

Бекенд

  • Полнотекстовый поиск
  • Авторизация через соцсети
  • Кеширование
  • Безопасность. Атаки, механизмы защиты
  • Очередь задач: celery

Разное

Материалы

Фронтенд

Бекенд