Лабораторая работа №2
Срок сдачи лабораторной работы - экзамен. Номера задач для выполнения выдаёт преподаватель на занятиях согласно расписанию.
Задачи на максимальную оценку 5
- Секция 3.3, все задачи. Всего 19 задач.
Задачи на максимальную оценку 6
Все программы должны поддерживать одновременную работу нескольких пользователей.
- Секция 3.4, номера задач: 3, 5, 6, 7, 8, 10, 15.
- Секция 2.2, все задачи. Всего 15 задач.
Требования к лабораторной
- Приложение должно реализовать все требования, указанные в задании. Однако, к защите допускаются приложения, реализующие только часть задач.
- Требования должны быть реализованы как функции веб-приложения, даже если в самом задании сказано, что необходимо разработать настольное приложение.
- Исходный код приложения должен быть проверен с помощью приложения Rubocop с настройками по-умолчанию. Для каждого нарушения, которое находит Rubocop, должно быть объяснение почему оно не было исправлено. Допускаются аргументы с точки зрения архитектуры приложения, другого рода аргументы не принимаются.
- Все зависимости приложения должны управляться с помощью Bundler, установка зависимостей с помощью
gem
запрещена. - Для разрабатываемого приложения должны быть создан отдельный каталог.
- В корне каталога должны располагаться конфигурационные файлы:
Gemfile
,Gemfile.lock
,Rakefile
. - Для веб-приложений необходимо создать файл
config.ru
и обеспечить запуск с помощью приложенияrackup
.
- В корне каталога должны располагаться конфигурационные файлы:
- Весь код приложения должен быть разбит на модули и классы, запрещается использовать файлы с простым набором методов, которые не пренадлежат какому-либо модулю. Это требование не накладывается на файл-приложения Sinatra.
- Необходимо выделить отдельные классы, описывающие предметную область.
- В одном модуле нельзя совмещать логику обработки предметной области и операции ввода-вывода.
- Приложение должно корректно обрабатывать неправильный ввод от пользователя.
- Для приложения необходимо написать системные тесты, которые будут проверять работу всех сценариев работы приложения. Системные тесты не должны влиять на степень покрытия тестами.
Требования к знаниям учащихся
- Уровень знакомства с синтаксисом языка Ruby:
- Запуск приложения из командной строки.
- Переменные, методы, блоки.
- Работа контейнерами, итераторами, нумераторами.
- Описание собственных классов.
- Наследование классов.
- Использование модулей и примесей.
- Использование стандартных классов чисел и диапазонов.
- Использование стандартных классов строк, регулярных выражений.
- Знание деталей вызова методов и указания его аргументов.
- Уровень знакомства с экосистемой Ruby:
- Установка, удаление зависимостей с помощью
gem
. - Управление зависимостями проекта с помощью Bundler.
- Проверка качества исходного кода с помощью Rubocop.
- Установка, удаление зависимостей с помощью
- Уровень знакомства с разработкой веб-приложений с помощью библиотеки Sinatra:
- Обработка запросов GET для получения информации.
- Использование шаблонов Foundation / Bootstrap для оформления сайта.
- Обработка запросов POST на редактирование информации.
- Сохранение данных пользователя в настройках приложения.
- Передача аргументов в контроллер через адресную строку.
- Написание системных тестов для проверки функциональности приложений.