Пересдача №2
Требования к выполнению задания
- Исходный код приложения должен быть проверен с помощью приложения Rubocop с настройками по-умолчанию или с конфигурацией, предложенной на соответствующем занятии. Для каждого нарушения, которое находит Rubocop, должно быть объяснение почему оно не было исправлено. Допускаются аргументы с точки зрения архитектуры приложения, другого рода аргументы не принимаются.
- Все зависимости приложения должны управляться с помощью Bundler, установка зависимостей с помощью
gem
запрещена. Исключением является джемbundler
. - Для разрабатываемого приложения должны быть создан отдельный каталог.
- В корне каталога должны располагаться конфигурационные файлы:
Gemfile
,Gemfile.lock
. - В корне каталога приложения должны находится каталоги5
bin
,lib
, в которых должен находиться исходный код приложения. В каталогеbin
находится исполняемый файл, в каталогеlib
находится описание всех собственных классов и модулей.
- В корне каталога должны располагаться конфигурационные файлы:
- Весь код приложения должен быть разбит на модули и классы, запрещается использовать файлы с простым набором методов, которые не пренадлежат какому-либо модулю.
- Необходимо выделить отдельные классы, описывающие предметную область.
- В одном модуле нельзя совмещать логику обработки предметной области и операции ввода-вывода.
- Приложение должно корректно обрабатывать неправильный ввод от пользователя.
Задача
Разработать приложение, оперирующее данными об видео на YouTube, библиотека просмотренных роликов. Ролик определяется следующими полями: название видео, название канала, продолжительность видео.
- Название видео и название канала не может быть пустым и вводится как строка.
- Продолжительность видео вводится в формате ММ:СС, например 12:35, и не может быть пустым.
Приложение должно предоставить веб-интерфейс для решения следующих задач:
- Добавление новой записи в список.
- Просмотр всех записей по времени добавления.
- Просмотр всех записей, отсортированных по продолжительности.
Требования к реализации
- Необходимо использовать объектно-ориентированный подход при реализации приложения. Как минимум необходимо описать классы Video и VideoCollection.
- Обработка логики по сортировке видео должна быть реализована силами класса VideoCollection. Желательно реализовать её через итераторы.
- Рекомендуется реализовать считывание данных при старте приложения из файла.
- Рекомендуется реализовать сохранение данных при завершении работы приложения.
Предоставление результатов преподавателю
- Исходный код должен быть загружен в архиве на сайт https://moodle.uniyar.ac.ru/ в качестве ответа на задание Пересдача №2.
- Если у вас нет доступа к сайту, то исходный код можно отправить на электронный адрес преподавателя.
Рекомендация по распределению времени
- Реализация приложения 14:30-15:30.
- Отправка результатов приложения 15:30-15:45.