Курс «Промышленная разработка веб-приложений» #

Версии презентации

Тематика дисциплины #

Разработка веб-приложений, выполняющихся на серверной стороне

  • Протокол передачи данных HTTP
  • Особенности разработки распределённых приложений: HTTP-сервер и HTTP-клиент
  • Типичные сценарии обработки запросов от клиентов
  • Архитектурные подходы к организации HTTP-серверов

Способы использования HTTP протокола #

Классический вариант, HTTP-сервер передаёт документы для отображения

diagram

Распространённый вариант, HTTP-клиенты запрашивают данные от сервера

  • JavaScript-приложения формируют HTML-элементы в веб-браузере
  • HTTP-клиенты обрабатывают данные или запрашивают изменения на сервере

diagram

В рамках курса рассмотрим разработку серверного HTTP-приложения, взаимодействующего с клиентом путём обмена JSON-документами

Инструменты и технологии #

  • Язык программирования Kotlin
    • Компактный синтаксис для JVM-приложений
    • Доступны явные средства обработки null-значений в переменных
    • Основной язык разработки Android-приложений
    • Можно создавать нативные приложения (в основном для iOS), JS-приложения
  • Инструмент сборки приложения и запуска задач поддержки разработки Gradle
  • Средства статического анализа исходного кода ktlint
  • Библиотека обработки HTTP-запросов http4k
    • Набор инструментов, взаимодействующих друг с другом, не фреймворк
    • Использует техники функционального программирования
  • Форматы представления данных JSON и CSV

Структура курса #

Курс состоит из следующих блоков:

  • Знакомство с основами технологий: Kotlin, Gradle, JSON
  • Знакомство с технологией передачи данных HTTP с использованием http4k
  • Редактирование данных на стороне сервера
  • Авторизация действий пользователя

Для закрепления материала в рамках каждого блока предлагается

  • Лично выполнить учебную задачу по управлению списком треугольников
  • Лично выполнить и защитить лабораторную работу

Лабораторные работы #

В рамках лабораторных работ необходимо разработать приложение

  • Одна тематика приложения на весь курс: магазин, информационный портал и т.д.
  • В первом блоке выполняется реализация базового приложения
  • В каждом следующем блоке необходимо расширить приложение новыми функциями
  • Хорошая реализация функций в лабораторной упрощает сдачу следующей лабораторной, т.к. можно использовать свои наработки
    • Рекомендуется писать понятный и поддерживаемый код
    • При наличии ошибок рекомендуется их исправлять

Особенности защит #

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

diagram

Оценивание лабораторных работ #

  • Каждая лабораторная работа оценивается по бальной системе от 0 до 6
    • 0 является возможной оценкой
    • 0 выставляется в случае отсутствия сдачи или защиты
  • Финальная оценка за курс формируется из оценок за лабораторные работы
  • На защите лабораторных работ необходимо продемонстрировать
    • Умение дорабатывать своё приложение
    • Знание теоретических основ используемых технологий

diagram

Лабораторные работы проверяются на соответствие требованиям автоматической системой проверки

  • Код лабораторной должен проходить проверку данной системой
  • До момента отправки лабораторной работы в Moodle будет предоставлена возможность проверки кода в автоматической системе проверке

Получение оценки за курс #

  • По курсу выставляется зачёт
  • Для получения зачёта необходимо защитить последнюю лабораторную на положительную оценку
    • Последняя лабораторная работа включает знания по всему курсу
    • Её достаточно просто реализовать при наличии реализации предыдущей
  • Для получения зачёта необходимо продемонстрировать умения и знания по предмету
    • Достаточно получить среднюю оценку выше 4 баллов
    • Достаточно получить оценку выше 4 баллов за последнюю лабораторную работу, но рекомендуется тренироваться на сдаче предыдущих работ

Особенности курса #

  • Оригинальное распределение времени
    • 1 лекция в 2 недели
    • 3 практических занятия в 2 недели
  • Распределение времени в расписании
    • 2 занятия в неделю
  • Формат занятий
    • Лекционный материал даётся в форме видео-записей
    • Задания для практический заданий выкладываются на сайте
  • На занятиях студенты
    • Слушают лекционный материал
    • Выполняют практические работы
    • Задают вопросы по материалам курса и лабораторным работам

Ценность занятий в университете #

  • Возможность проверить работу своего приложения в окружении, которое будет использовано для оценки и защиты работы
    • Защита работ проходит только в рамках ОС Linux
    • Если на защите возникают проблемы с использованием окружения, то это проблемы студента
    • На подготовку к защите работы в компьютерном классе даётся 10 минут
  • Возможность в рабочей обстановке заняться изучением предмета
  • Возможность задать содержательные вопросы преподавателю
  • Если вы не присутствуете на занятии, то это не значит, что пары по предмету нет

Как задавать вопрос #

Вопросы являются отличным способом взаимодействия между людьми, однако для улучшения взаимодействия рекомендуется использовать следующие рекомендации

  • Сформулируйте вопрос
  • Зафиксируйте собственные попытки в решении данного вопроса и их результаты

Если вопрос будет хорошо подготовлен, тогда отвечающий сможет:

  • Быстрее понять проблему
  • Дать ответ в соответствии с уровнем понимания вопроса