Основы разработки 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 смогут сделать динамическими согласно задаче.