Результат работы - архив с исходными кодами приложения, который прикрепляется как решение задачи.

Важно. Если у проверяющего возникнет обоснованное предположение о совместном решении, тогда все участники получат неудовлетворительную оценку.

Проверяемые знания учащихся

  • Уровень знакомства с языком Ruby:
    • Запуск приложения.
    • Описание переменных и методов, их использование.
    • Работа с контейнерами, итераторами, нумераторами.
    • Описание собственных классов.
    • Наследование классов.
    • Использование модулей и примесей.
    • Знание деталей работы стандартных классов: чисел, строк.
    • Знание деталей вызова методов и указания их аргументов.
    • Использование методов чисел и промежутков.
    • Использование методов классов строк и регулярных выражений.
  • Уровень знакомства с экосистемой языка Ruby:
    • Установка, удаление зависимостей с помощью gem.
    • Управление зависимостями с помощью Bundler.
    • Проверка качества исходного кода с помощью Rubocop.
    • Написание модульных тестов с помощью инструментов RSpec.

Требования к выполнению задания

  • Приложение должно реализовать все требования, указанные в задании. Однако к защите допускаются приложения, реализующие только часть задач.
  • К защите не допускается исходный код, который не запускается.
  • Исходный код приложения должен быть проверен с помощью приложения Rubocop с настройками по-умолчанию или с конфигурацией, предложенной на соответствующем занятии. Для каждого нарушения, которое находит Rubocop, должно быть объяснение почему оно не было исправлено. Допускаются аргументы с точки зрения архитектуры приложения, другого рода аргументы не принимаются.
  • Все зависимости приложения должны управляться с помощью Bundler, установка зависимостей с помощью gem запрещена. Исключением является джем bundler.
  • Для разрабатываемого приложения должны быть создан отдельный каталог.
    • В корне каталога должны располагаться конфигурационные файлы: Gemfile, Gemfile.lock.
    • В корне каталога приложения должны находится каталоги bin, lib, в которых должен находиться исходный код приложения. В каталоге bin находится исполняемый файл, в каталоге lib находится описание всех собственных классов и модулей.
    • В корне каталога приложения должен находиться каталог spec, в котором должны находиться модульные тесты для классов, описывающих предметную логику.
  • Весь код приложения должен быть разбит на модули и классы, запрещается использовать файлы с простым набором методов, которые не пренадлежат какому-либо модулю.
  • Необходимо выделить отдельные классы, описывающие предметную область.
  • В одном модуле нельзя совмещать логику обработки предметной области и операции ввода-вывода.
  • Приложение должно корректно обрабатывать неправильный ввод от пользователя.
  • Приложение должно обладать понятным интерфейсом: показывать помощь по использованию, для ввода данных приложение должно показывать приглашение.
  • Необходимо предоставлять пользователю

Задача лабораторной №2

Реализуйте консольное приложение, решающее задачу из задачника.

Если в задаче явно не указано требование по выводу списков данных, которыми управляет приложение, то такие действия необходимо добавить в приложение. То есть если у вас приложение управляет списком товаров, то среди действий приложения должно быть действие «вывести список товаров».

Студент Номер задачи
Воронин Иван Алексеевич № 13
Галицкая Анастасия Алексеевна № 8
Геннеке Даниил Викторович № 10
Гузанов Даниил Александрович № 20
Дамарацкий Станислав Андреевич № 6
Завьялов Олег Валерьевич № 2
Зафиевский Даниил Дмитриевич № 4
Ковзель Леонид Олегович № 9
Кузьмин Дмитрий Владимирович № 8
Курочкин Антон Александрович № 9
Мазаев Роман Владимирович № 5
Пашментов Денис Игоревич № 1
Петрова Анастасия Сергеевна № 16
Селиванчиков Дмитрий Александрович № 3
Соколов Виталий Сергеевич № 3
Соколов Илья Игоревич № 10
Шаршакова Наталья Александровна № 4
Швецов Илья Александрович № 11
Шевченко Олег Олегович № 7
Студент Номер задачи
Александров Михаил Александрович № 5
Арабов Александр Игоревич № 2
Балашов Александр Русланович № 11
Басов Савелий Дмитриевич № 9
Безденежный Серафим Олегович № 15
Борисова Анастасия Дмитриевна № 16
Вихарев Никита Алексеевич № 11
Головкина Елена Вячеславовна № 4
Ерохин Илья Алексеевич № 15
Зенин Андрей Сергеевич № 12
Кругликов Алексей Михайлович № 13
Малашенко Дмитрий Алексеевич № 16
Мамаев Роман Юрьевич № 3
Павлюк Матвей Денисович № 5
Паклин Даниил Владимирович № 7
Самолетов Илья Николаевич № 1
Сквозняков Сергей Владимирович № 12
Тонков Даниил Валерьевич № 12
Тягнибедин Максим Евгеньевич № 17
Якушева Полина Николаевна № 17
Студент Номер задачи
Бегунова Мария Евгеньевна № 14
Болотов Андрей Владимирович № 17
Большакова Ирина Александровна № 15
Буракин Евгений Дмитриевич № 19
Бытев Егор Ильич № 18
Вахмянин Даниил Растиславович № 3
Веревкина Анна Александровна № 6
Виноградов Александр Сергеевич № 2
Воробьев Ярослав Михайлович № 19
Гаврилов Сергей Алексеевич № 18
Гамзин Роман Алексеевич № 17
Демидов Егор Денисович № 4
Ермолаева Анастасия Михайловна № 6
Ермолин Павел Анатольевич № 8
Ивлева Елизавета Сергеевна № 1
Игнатенков Илья Сергеевич № 14
Калачихин Евгений Васильевич № 14
Колесников Семен Борисович № 14
Кондаков Максим Дмитриевич № 13
Краюшкина Анна Евгеньевна № 19
Кузнецов Данила Вячеславович № 10
Кузьмин Иван Дмитриевич № 16
Лимаренко Дмитрий Константинович № 20
Мамонтова Александра Викторовна № 10
Мещеряков Иван Андреевич № 7
Михиенков Алексей Юрьевич № 6
Пеганов Вячеслав Викторович № 18
Смирнов Никита Александрович № 13
Уханова Яна Владимировна № 20
Хохлышева Оксана Сергеевна № 20
Ширшов Георгий Вадимович № 7