Основы

Основы разработки HTTP-серверных приложений #

В рамках данного раздела ученики должны научиться создавать самые простые приложения с помощью http4k:

  • Инициализация данных из набора внутри приложения.
  • Возможность просмотра списка из элементов.
  • Возможность просмотра одного элемента.
  • Возможность отображения статистической информации по прочитанным материалам.
  • Должна быть корректно решена задача отделения логики предметной области и маршрутизации.

Для решения этих задач необходимо знать следующее:

  • Базовое знание языка Kotlin
  • http4k в базовом виде
    • обработка HTTP-запросов
    • архитектура простейших приложений
  • Написание HTML-документов
  • Генерация документов с помощью шаблонизатора Pebble

Лекция № 1: Введение в клиент-серверные приложения #

  • История протокола HTTP
  • Раздача статических файлов по сети
  • Язык HTML, супер-кратко
  • URI и URL как средство описания пути к ресурсам и документам в сети
  • Абсолютный и относительный путь к документу
  • Типы веб-приложений и технологии, которые обеспечивают их работу
    • Серверное веб-приложение
    • Клиенсткое веб-приложение
    • Веб-сервис (JSON, XML, ProtoBuf)
  • Особенности взаимодействия по протоколу HTTP
    • GET-запрос может быть повторён множество раз
    • Отсутствует понятие общего состояния между сервером
      • В рамках запроса клиент сам идентифицирует себя с помощью печенек, сессия
      • Клиент явно идентифицирует целевые данные в запросе
  • Особенности разработки веб-приложений
    • Взаимодействие происходит по сети
      • Распределённое приложение
      • Сеть может не работать
    • Множество людей обращаются одновременно к данным на сервере
  • Система DNS доменных адресов
    • Общая схема
    • Адрес localhost
    • Локальное переопределение доменных адресов

Практика № 1: Язык HTML для описания документов #

  1. Рассмотрение инструментов, которые будут использоваться в рамках курса.
  2. Создание проекта сайта, набора файлов https://developer.mozilla.org/ru/docs/Learn/Getting_started_with_the_web/Dealing_with_files
  3. Начало работы с HTML https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/Getting_started

В рамках практики необходимо создать один HTML-документ, который бы описывал текущие знания студентов как по тематике курса, так и по другим тематикам обучения.

Может быть стоит записать темы обучения по всем предметам.

Практика № 2: Структура документа и ссылки между документами #

  1. Заголовок: https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML
  2. Основы редактирования текста в HTML: https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals
  3. Создание гиперссылок: https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks

Финальная задача: сделать набор документов, что-то документирующих. Например описывает их лабораторные по предыдущим курсам. Что надо было сделать и какие получились результаты.

Практика № 3: Введение в CSS #

  1. Все руководства из раздела введение в CSS: https://developer.mozilla.org/ru/docs/Learn/CSS/First_steps

Необходимо как-то сложным образом разукрасить элементы. При этом работать надо на уровне внешнего .css-документа, а не с помощью встраивания стилей.

Лекция № 2: Язык программирования Kotlin #

Краткий обзор возможностей языка. Строится лекция на особенностях относительно Java.

Практика № 4: Введение в CSS-фреймворк Foundation #

  1. Подключение.
  2. Grid-система.
  3. Стандартные виджеты.

Необходимо обеспечить создание некоторого набора страниц.

Практика № 5: Написание простого приложения с использованием языка Kotlin #

Надо реализовать небольшое консольное приложение с использованием данного языка. Берём подготовленные данные, а затем позволяем выполнять действия над ними.

Практика № 6: Работа с коллекциями в языке Kotlin #

Необходимо познакомить студентов с возможностями коллекций и блоков. Необходимо решить типичные задачи по обработке коллекций.

Лекция № 3: Введение в http4k #

Базовое устройство библиотеки, обзор её возможностей. Основа архитектуры

Практика № 7: Обработка простых маршрутов в http4k #

  1. Использование гернератора приложений http4k
  2. Обзор созданной gradle-конфигурации
  3. Обзор созданного приложения
  4. Настройка обработки различных путей внутри приложения

Настройки проекта по умолчанию: toolbox.http4k.org

Практика № 8: Отображение динамических HTML-документов #

  1. Настройка раздачи статического контента
  2. Подключение шаблонизатора для отдачи содержимого
  3. Настройка базового шаблона для страниц

Необходимо реализовать отображение списка элементов и постраничный вывод информации

Защита лабораторной работы № 1 #

Работу над лабораторной следует начать после практики №4. Студентам необходимо будет разработать шаблоны HTML-страниц, которые они после практик № 7 и 8 смогут сделать динамическими согласно задаче.

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