2023/2024
Разработка веб-приложений (бекэнд)
Статус:
Маго-лего
Кто читает:
Департамент компьютерной инженерии
Когда читается:
2, 3 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Кирсанов Александр Викторович
Язык:
русский
Кредиты:
6
Контактные часы:
26
Программа дисциплины
Аннотация
В этом курсе будет сделан упор на архитектуру реальных проектов. Будет много полезного безотносительно языка: как работает веб, сеть и протоколы; что такое грамотная архитектура в бекенде и в API; git, базы и многое другое. Будут и PHP-специфичные вещи: фреймворки, шаблонизаторы и FFI. Расскажем про архитектуру и работу ВКонтакте — как нам удаётся держать миллион qps, раздавать терабиты трафика и обеспечивать отказоустойчивость. А самые любопытные смогут узнать про наш собственный язык KPHP, компиляторы и анализ языков в целом.
Цель освоения дисциплины
- Получение знаний по грамотной архитектуре в бекенде и в API
- Формирование представления об устройстве бекенда для высоконагруженных приложений
- Ознакомление с современным инструментарием и технологиями, используемыми в высоконагруженных приложениях
Планируемые результаты обучения
- Понимать, что такое высоконагруженные системы
- Знает отличительные особенности NoSQL-СУБД по сравнению с реляционными СУБД
- работает с NoSQL. Cassandra. Знает основные понятия и процессы NoSQL. Cassandra
- Знать что такое компилятор, как он устроен, какая часть отвечает за что
- Владеет инструментарием мониторинга.
- Знает место и роль баз данных в информационных системах, основы организации промышленных систем управления базами данных;
- Имеет представление о компиляторе KPHP
- Знает основные компоненты серверного приложения
- Понимает значение баз данных при использовании высоконагруженных приложений, знает про репликации, шардирование, кластреризацию баз данных
- Знает основные инструменты для автоматизации процессов разработки, сборки, деплоя приложения
- Знает основные принципы тестирования приложений
- Понимает отличия высоконагруженных приложений от обычных, и сложности, возникающие при высокой нагрузке
- Знает архитектуру бекенда высоконагруженных приложений
- Понимает значение кодировок, умеет с ними работать
- Знает, что такое логирование и мониторинг, сложности логирования и мониторинга в высоконагруженном приложении
Содержание учебной дисциплины
- Бекенд: разработка, сборка, тестирование, внедрение
- Высоконагруженные приложения и компиляторы
- Дополнительные разделы
- Введение в архитектуру
Список литературы
Рекомендуемая основная литература
- Agile-тестирование : обучающий курс для всей команды, Грегори, Дж., 2019
- NoSQL : новая методология разработки нереляционных баз данных, Садаладж, П. Дж., 2016
- PHP 7, Котеров, Д. В., 2017
- Высоконагруженные приложения : программирование, масштабирование, поддержка, Клеппман, М., 2019
- Компьютерные сети : принципы, технологии, протоколы: учеб. пособие для вузов, Олифер, В. Г., 2015
- Паттерны проектирования, Фримен, Э., 2013
Рекомендуемая дополнительная литература
- Языки программирования и методы трансляции, Опалева, Э. А., 2005