Описание курса

Описание курса #

Презентацию можно посмотреть по ссылке.

Раздел ниже требует доработки.

Знания и умения студентов #

В результате прохождения курса студент должен сформировать следующий набор знаний и умений.

  • Знать детали работы протокола HTTP
    • Клиент-серверная модель взаимодействия
    • Взаимодействие без сохранения состояния
    • Поддержка сессий с помощью технологий cookies
    • Коды ответа
    • Заголовки
    • Структура URI для описания пути к ресурсам
    • Возможности, предоставляемые новыми версиями протокола HTTP 2 и 3
  • Знать возможности современных Веб-клиентов, браузеров
    • Знать средства разработчика, предоставляемые браузером
      • Средства анализа взаимодействия между браузером и сервером
      • Средства анализа структуры HTML-документов
  • Знать сферы деятельности ИТ-специалистов, вовлечённых в процесс создания веб-приложений
  • Знать способы организации взаимодействия с веб-приложением
    • Знать REST
    • Знать JSON API
    • Знать OpenAPI (swagger)
  • Знать о вариантах архитектуры веб-приложений
    • Серверные веб-приложения
    • Клиентские веб-приложения
  • Знать о 12 факторах для разворачивания продуктового приложения и как эти факторы учтены в рамках курса
  • Уметь реализовывать веб-приложение
    • Выдача JSON-документов при обращении за данными
    • Постраничная выдача данных при обращении к спискам
    • Изменение данных при выполнении соответствующих запросов от пользователей
    • Проверка параметров, которые передаёт пользователь
    • Реализация авторизации внутренними силами
    • Реализация авторизации с помощью внешнего приложения
    • Реализация системы ролей, при которой разные пользователи получают доступ к различным частям пользовательского интерфейса
    • Реализовывать корректное журналирование запросов, поступающих от клиента
    • Уметь реализовывать REST-интерфейсы для работы с данными
  • Уметь писать автоматические тесты
    • Тесты модульные
    • Тесты системные
  • Уметь разворачивать приложение на сервере
  • Уметь использовать инструменты автоматического анализа исходного кода

Инструменты, которые студент должен освоить в рамках курса #

  • Язык Kotlin в уровне достаточном для использования в других частях курса. Предполагается, что студенты знакомы с языком программирования Java.
  • Система сборки и запуска задач Gradle Build Tool.
  • Библиотека для написания HTTP-серверов и HTTP-клиентов http4k.
  • Фреймворк для написания модульных тестов kotest.

Проверка знаний студентов #

Проверка знаний студентов осуществляется путём реализации и последующей защиты лабораторных работ.

В рамках курса студентам необходимо реализовать веб-приложение, в которое по мере изучения материалов курса будут добавляться новые функции.

Лабораторная работа № 1 #

Базовое знакомство с языком Kotlin.

Лабораторная работа № 2 #

Базовое веб-приложение, предоставляющее данные в режиме чтения.

Лабораторная работа № 3 #

Веб-приложение, позволяющее пользователю редактировать данные.

Лабораторная работа № 4 #

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

© A. M. Васильев, 2025, CC BY-SA 4.0, andrey@crafted.su