Лабораторная работа № 2 #
Проверяемые знания #
- Знание основ языка Kotlin.
- Умение описывать функции.
- Умение описывать классы.
- Умение описывать классы данных.
- Умение использовать стандартные коллекции.
- Умение использовать функциональные типы данных.
- Знание формата данных CSV.
- Знание формата данных JSON.
- Знание основ настройки системы сборки Gradle.
- Умение обрабатывать аргументы приложения.
- Умение подключать существующие библиотеки для работы приложения.
- Знание логики работы протокола HTTP.
- Знание структуры URI в запросах HTTP.
- Понятие о полных, частичных, относительных и абсолютных URI.
- Знание описания параметров URI.
- Умение обрабатывать GET-запросы с помощью библиотеки http4k.
- Умение корректно обрабатывать параметры, приходящие от пользователя:
- Через маршруты к документам.
- Через параметры маршрута.
- Умение применять средства статического анализа кода Kotlin: ktlint и detekt.
Требования к лабораторной работе #
- Результат работы — исходные коды приложения без артефактов сборки приложения
(без каталогов
bin
,build
,.gradle
,.idea
).- Не надо добавлять в архив с исходными кодами файлы, которые не нужны для компиляции, запуска. Исключением является — документация по работе приложения.
- В передаваемом архиве должны отсутствовать результаты работы приложения. Приложение должно запускаться и продуцировать результаты на любом компьютере, удовлетворяющем требованиям.
- Приложение должно запускаться из любого каталога, не должно быть привязок к местоположению каталога приложения к абсолютным путям.
- Приложение должно быть разработано с использованием языка программирования Kotlin.
- Приложение должно быть разбито на логические части: пакеты, функции и классы.
- Приложение должно возвращать ненулевой код возврата, если произошла ошибка.
- Приложение не должно выводить стек вызова при любом сценарии использования приложения.
- Для подключения дополнительных библиотек необходимо использовать механизм, предложенный в шаблоне лабораторной работы.
- Приложение должно корректно обрабатывать некорректные данные от пользователя:
- Всегда должны формироваться JSON-документы с корректным содержимым.
- Приложение не должно показывать техническую информацию об исключительных ситуациях, стеках вызова и прочее пользователю. Данные ситуации должны быть явно обработаны внутри вашего кода приложения и преобразованы в сообщения, понятные для пользователя. Для решения этой задачи запрещено использовать фильтр с перехватом всех исключительных ситуаций приложения.
- В случае отсутствия искомого документа должна отображаться соответствующая страница.
- Логику проверки данных, поступающих от пользователя, следует выделять в отдельный слой.
- Приложение должно соответствовать требованиям к исходному коду,
предоставляемыми актуальной версией инструмента ktlint. Конфигурация ktlint
должна соответствовать требованиям.
- Запрещено вносить изменения в конфигурацию ktlint.
- Запрещено любым образом отключать сообщения ktlint.
- Рекомендуется исправить все недостатки, на которые указывает инструмент detekt.
- В приложении и в используемых файлах не должны систематически дублироваться данные.
- Рекомендуется разработать модульные тесты для проверки работоспособности HTTP-обработчиков.
Задача #
Разработать веб-приложение, решающее задачу по отображению большого объёма данных по указанной тематике. Приложение должно соответствовать спецификации.
Приложение должно корректно обрабатывать любые запросы от клиента.
Список сущностей для приложения следует брать из задачи к лабораторной работы № 1.
- Инвентаризационный список техники: спецификация
- Продажа песчано-гравийной смеси: спецификация
- Список задач: спецификация
- Управление прачечной самообслуживания: спецификация