• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2023/2024

Разработка веб-приложений (бекэнд)

Статус: Маго-лего
Когда читается: 2, 3 модуль
Охват аудитории: для своего кампуса
Преподаватели: Кирсанов Александр Викторович
Язык: русский
Кредиты: 6
Контактные часы: 26

Программа дисциплины

Аннотация

В этом курсе будет сделан упор на архитектуру реальных проектов. Будет много полезного безотносительно языка: как работает веб, сеть и протоколы; что такое грамотная архитектура в бекенде и в API; git, базы и многое другое. Будут и PHP-специфичные вещи: фреймворки, шаблонизаторы и FFI. Расскажем про архитектуру и работу ВКонтакте — как нам удаётся держать миллион qps, раздавать терабиты трафика и обеспечивать отказоустойчивость. А самые любопытные смогут узнать про наш собственный язык KPHP, компиляторы и анализ языков в целом.
Цель освоения дисциплины

Цель освоения дисциплины

  • Получение знаний по грамотной архитектуре в бекенде и в API
  • Формирование представления об устройстве бекенда для высоконагруженных приложений
  • Ознакомление с современным инструментарием и технологиями, используемыми в высоконагруженных приложениях
Планируемые результаты обучения

Планируемые результаты обучения

  • Понимать, что такое высоконагруженные системы
  • Знает отличительные особенности NoSQL-СУБД по сравнению с реляционными СУБД
  • работает с NoSQL. Cassandra. Знает основные понятия и процессы NoSQL. Cassandra
  • Знать что такое компилятор, как он устроен, какая часть отвечает за что
  • Владеет инструментарием мониторинга.
  • Знает место и роль баз данных в информационных системах, основы организации промышленных систем управления базами данных;
  • Имеет представление о компиляторе KPHP
  • Знает основные компоненты серверного приложения
  • Понимает значение баз данных при использовании высоконагруженных приложений, знает про репликации, шардирование, кластреризацию баз данных
  • Знает основные инструменты для автоматизации процессов разработки, сборки, деплоя приложения
  • Знает основные принципы тестирования приложений
  • Понимает отличия высоконагруженных приложений от обычных, и сложности, возникающие при высокой нагрузке
  • Знает архитектуру бекенда высоконагруженных приложений
  • Понимает значение кодировок, умеет с ними работать
  • Знает, что такое логирование и мониторинг, сложности логирования и мониторинга в высоконагруженном приложении
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Бекенд: разработка, сборка, тестирование, внедрение
  • Высоконагруженные приложения и компиляторы
  • Дополнительные разделы
  • Введение в архитектуру
Элементы контроля

Элементы контроля

  • неблокирующий Activity
  • блокирующий экзамен
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 3rd module
    0.1 * Activity + 0.1 * Activity + 0.8 * экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Agile-тестирование : обучающий курс для всей команды, Грегори, Дж., 2019
  • NoSQL : новая методология разработки нереляционных баз данных, Садаладж, П. Дж., 2016
  • PHP 7, Котеров, Д. В., 2017
  • Высоконагруженные приложения : программирование, масштабирование, поддержка, Клеппман, М., 2019
  • Компьютерные сети : принципы, технологии, протоколы: учеб. пособие для вузов, Олифер, В. Г., 2015
  • Паттерны проектирования, Фримен, Э., 2013

Рекомендуемая дополнительная литература

  • Языки программирования и методы трансляции, Опалева, Э. А., 2005