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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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