Основы разработки HTTP-серверных приложений #
В рамках данного раздела ученики должны научиться создавать самые простые приложения с помощью http4k:
- Инициализация данных из набора внутри приложения.
 - Возможность просмотра списка из элементов.
 - Возможность просмотра одного элемента.
 - Возможность отображения статистической информации по прочитанным материалам.
 - Должна быть корректно решена задача отделения логики предметной области и маршрутизации.
 
Для решения этих задач необходимо знать следующее:
- Базовое знание языка Kotlin
 - http4k в базовом виде
- обработка HTTP-запросов
 - архитектура простейших приложений
 
 - Написание HTML-документов
 - Генерация документов с помощью шаблонизатора Pebble
 
Лекция № 1: Введение в клиент-серверные приложения #
- История протокола HTTP
 - Раздача статических файлов по сети
 - Язык HTML, супер-кратко
 - URI и URL как средство описания пути к ресурсам и документам в сети
 - Абсолютный и относительный путь к документу
 - Типы веб-приложений и технологии, которые обеспечивают их работу
- Серверное веб-приложение
 - Клиенсткое веб-приложение
 - Веб-сервис (JSON, XML, ProtoBuf)
 
 - Особенности взаимодействия по протоколу HTTP
- GET-запрос может быть повторён множество раз
 - Отсутствует понятие общего состояния между сервером
- В рамках запроса клиент сам идентифицирует себя с помощью печенек, сессия
 - Клиент явно идентифицирует целевые данные в запросе
 
 
 - Особенности разработки веб-приложений
- Взаимодействие происходит по сети
- Распределённое приложение
 - Сеть может не работать
 
 - Множество людей обращаются одновременно к данным на сервере
 
 - Взаимодействие происходит по сети
 - Система DNS доменных адресов
- Общая схема
 - Адрес localhost
 - Локальное переопределение доменных адресов
 
 
Практика № 1: Язык HTML для описания документов #
- Рассмотрение инструментов, которые будут использоваться в рамках курса.
 - Создание проекта сайта, набора файлов https://developer.mozilla.org/ru/docs/Learn/Getting_started_with_the_web/Dealing_with_files
 - Начало работы с HTML https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/Getting_started
 
В рамках практики необходимо создать один HTML-документ, который бы описывал текущие знания студентов как по тематике курса, так и по другим тематикам обучения.
Может быть стоит записать темы обучения по всем предметам.
Практика № 2: Структура документа и ссылки между документами #
- Заголовок: https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML
 - Основы редактирования текста в HTML: https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals
 - Создание гиперссылок: https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks
 
Финальная задача: сделать набор документов, что-то документирующих. Например описывает их лабораторные по предыдущим курсам. Что надо было сделать и какие получились результаты.
Практика № 3: Введение в CSS #
- Все руководства из раздела введение в CSS: https://developer.mozilla.org/ru/docs/Learn/CSS/First_steps
 
Необходимо как-то сложным образом разукрасить элементы. При этом работать надо на уровне внешнего .css-документа, а не с помощью встраивания стилей.
Лекция № 2: Язык программирования Kotlin #
Краткий обзор возможностей языка. Строится лекция на особенностях относительно Java.
Практика № 4: Введение в CSS-фреймворк Foundation #
- Подключение.
 - Grid-система.
 - Стандартные виджеты.
 
Необходимо обеспечить создание некоторого набора страниц.
Практика № 5: Написание простого приложения с использованием языка Kotlin #
Надо реализовать небольшое консольное приложение с использованием данного языка. Берём подготовленные данные, а затем позволяем выполнять действия над ними.
Практика № 6: Работа с коллекциями в языке Kotlin #
Необходимо познакомить студентов с возможностями коллекций и блоков. Необходимо решить типичные задачи по обработке коллекций.
Лекция № 3: Введение в http4k #
Базовое устройство библиотеки, обзор её возможностей. Основа архитектуры
Практика № 7: Обработка простых маршрутов в http4k #
- Использование гернератора приложений http4k
 - Обзор созданной gradle-конфигурации
 - Обзор созданного приложения
 - Настройка обработки различных путей внутри приложения
 
Настройки проекта по умолчанию: toolbox.http4k.org
Практика № 8: Отображение динамических HTML-документов #
- Настройка раздачи статического контента
 - Подключение шаблонизатора для отдачи содержимого
 - Настройка базового шаблона для страниц
 
Необходимо реализовать отображение списка элементов и постраничный вывод информации
Защита лабораторной работы № 1 #
Работу над лабораторной следует начать после практики №4. Студентам необходимо будет разработать шаблоны HTML-страниц, которые они после практик № 7 и 8 смогут сделать динамическими согласно задаче.