Задачи для лабораторных

Лабораторая работа №1

Лабораторая работа №2

Требования к лабораторным работам

Требования являются максимальными, т.е. включают особенности разработки приложений для командного интерфейса, модульных тестов и веб-приложений. Если в задании не указываются необходимость создания подобных элементов, то соответствующие требования можно не реализовывать.

  • Приложение должно реализовать все требования, указанные в задании. Однако, к защите допускаются приложения, реализующие только часть задач.
  • Исходный код приложения должен быть проверен с помощью приложения Rubocop с настройками по-умолчанию. Для каждого нарушения, которое находит Rubocop, должно быть объяснение почему оно не было исправлено. Допускаются аргументы с точки зрения архитектуры приложения, другого рода аргументы не принимаются.
  • Все зависимости приложения должны управляться с помощью Bundler, установка зависимостей с помощью gem запрещена.
  • Для разрабатываемого приложения должны быть создан отдельный каталог.
    • В корне каталога должны располагаться конфигурационные файлы: Gemfile, Gemfile.lock, Rakefile.
    • Для веб-приложений необходимо создать файл config.ru и обеспечить запуск с помощью приложения rackup.
  • Весь код приложения должен быть разбит на модули и классы, запрещается использовать файлы с простым набором методов, которые не пренадлежат какому-либо модулю.
  • Необходимо выделить отдельные классы, описывающие предметную область.
  • В одном модуле нельзя совмещать логику обработки предметной области и операции ввода-вывода.
  • Приложение должно корректно обрабатывать неправильный ввод от пользователя.
  • Для приложения необходимо написать модульные тесты, которые будут проверять ключевую логику из предметной области.
  • Модульные тесты должны запускаться с помощью системы управления задач Rake.
  • Необходимо измерять степень покрытия предметной логики модульными тестами с помощью SimpleCov. Необходимо добиться покрытия в 95% в данных классах. Желательно добиться такого же покрытия и на коде, осуществляющем ввод-вывод данных.
  • Для приложения необходимо написать системные тесты, которые будут проверять работу всех сценариев работы приложения. Системные тесты не должны влиять на степень покрытия тестами.

Процедура сдачи лабораторной работы

Данная процедура будет применяться при приёме всех лабораторных работ, которые вы будете очно сдавать.

  • Сдача лабораторной работы происходит на компьютерах, установленных в компьютерной аудитории.
  • Студент приходит на сдачу лабораторной работы с готовой лабораторной работой.
    • Студенту предоставляется 10 минут на настройку компьютера для запуска своей лабораторной работы.
    • Студенту предоставляется 5 минут на презентацию работы лабораторной работы преподавателю.
    • Студенту необходимо за 25 минут внести изменения в лабораторную, которые ему предложит преподаватель.
    • Студенту предоставляется 5 минут на показ внесённых изменений.
  • Во время контрольной разрешается использовать следующие источники информации:
    • Встроенная документация, предоставляемая ri.
    • Документация на сайте ruby-doc.org.
  • Остальные средства получения информации запрещены, в том числе:
    • Любые интернет-ресурсы, включая информационный сайт курса запрещены.
    • Любые ресурсы локальной сети, включая файловое хранилище.
    • Общение с другими людьми, сдающими контрольную работу.
    • Использование физических средств связи, телефонов, часов, гарнитур и т.д. Наличие телефона в руках автоматически обозначает его использование.
  • Студент на сдачу может взять с собой листок бумаги и ручку, средства связи (мобильные телефоны, часы, наушники) во избежание недоразумений лучше оставить за пределами аудитории.