Требования к знаниям учащихся
- Уровень знакомства с синтаксисом языка Ruby:
- Запуск приложения.
- Переменные, методы.
- Работа контейнерами, итераторами, нумераторами.
- Описание собственных классов.
- Наследование классов.
- Использование модулей и примесей.
- Знание деталей работы чисел.
- Знание деталей вызова методов и указания их аргументов.
- Использование методов чисел и промежутков.
- Использование методов классов строк и регулярных выражений.
- Уровень знакомства с экосистемой Ruby:
- Установка, удаление зависимостей с помощью
gem.
- Управление зависимостями с помощью Bundler.
- Проверка качества исходного кода с помощью Rubocop.
- Запуск типичных задач разработчика с помощью Rake.
- Уровень знакомства с разработкой веб-приложений с помощью библиотеки Roda:
- Обработка запросов GET для получения данных.
- Использование шаблонов Foundation / Bootstrap для оформления сайта.
- Обработка запросов POST на редактирование данных.
- Передача аргументов в контроллер через адресную строку.
- Умение структурировать сложное приложение.
- Умение формировать интерфейс взаимодействия в стиле REST.
Требования к выполнению задания
- Приложение должно реализовать все требования, указанные в задании. Однако, к защите допускаются приложения, реализующие только часть задач.
- Исходный код приложения должен быть проверен с помощью приложения Rubocop с настройками по-умолчанию или с конфигурацией, предложенной на соответствующем занятии. Для каждого нарушения, которое находит Rubocop, должно быть объяснение почему оно не было исправлено. Допускаются аргументы с точки зрения архитектуры приложения, другого рода аргументы не принимаются.
- Все зависимости приложения должны управляться с помощью Bundler, установка зависимостей с помощью
gem запрещена. Исключением является джем bundler.
- Для разрабатываемого приложения должны быть создан отдельный каталог.
- В корне каталога должны располагаться конфигурационные файлы:
Gemfile, Gemfile.lock.
- В корне каталога должен находится конфигурационный файл
rackup с помощью которого можно запустить приложение.
- Исходный код приложения может быть расположен в каталогах
helpers, models, lib, routes.
- В каталоге
views должны находиться шаблоны для описания вида.
- Весь код приложения должен быть разбит на модули и классы, запрещается использовать файлы с простым набором методов, которые не пренадлежат какому-либо модулю.
- Необходимо выделить отдельные классы, описывающие предметную область.
- В одном модуле нельзя совмещать логику обработки предметной области и операции ввода-вывода.
- Для обработки параметров запросов необходимо использовать специализированную библиотеку (
dry-schema, dry-validations и т.п.).
- Для формирования содержимого формы необходимо использовать специализированную библиотеку (
forme, simple_form и т.п.).
- Приложение должно корректно обрабатывать неправильный ввод от пользователя.
- Приложение должно обладать понятным интерфейсом: показывать помощь по использованию, в случае ошибочных ситуаций сообщать пользователю причину ошибки и способы его устранения.
- Желательно автоматизировать следующие задачи с помощью системы выполнения задач Rake:
- Запуск приложения с помощью
rerun.
- Выполнение проверки исходного кода с помощью Rubocop.
- Запрещено писать код для приложения на языке JavaScript или любом языке, который компилируется в JavaScript.
Задача
В качестве лабораторной работы необходимо решить задачу из задачника.
Рекомендуется также создать тестовый набор данных достаточно большого объёма, более тысячи записей.
ИВТ-21БО
| Имя |
Задача |
| Арцимовская Вероника Михайловна |
№19 |
| Врачев Михаил Алексеевич |
№11 |
| Голубева Ксения Руслановна |
№3 |
| Гусев Леонид Васильевич |
№10 |
| Дубровина Анастасия Михайловна |
№14 |
| Корчагина Дарья Михайловна |
№3 |
| Кострюков Григорий Алексеевич |
№4 |
| Крутилов Алексей Андреевич |
№18 |
| Крышковец Дмитрий Игоревич |
№1 |
| Кудинкин Илья Андреевич |
№14 |
| Кузьменко Алексей Павлович |
№9 |
| Лифанов Валерий Павлович |
№17 |
| Лобашова Юлия Александровна |
№9 |
| Морозов Даниил Игоревич |
№9 |
| Петровский Илья Андреевич |
№5 |
| Сироджов Мехрофарид Ибодуллоевич |
№6 |
| Стулова Василина Игоревна |
№7 |
| Суслов Данила Андреевич |
№1 |
| Суханов Александр Денисович |
№19 |
| Сухонин Виктор Васильевич |
№16 |
| Тихомиров Максим Витальевич |
№13 |
| Торопов Егор Александрович |
№14 |
| Шипилова Дарья Романовна |
№13 |
ИВТ-22БО
| Имя |
Задача |
| Барышева Наталья Сергеевна |
№17 |
| Боброва Полина Ильинична |
№15 |
| Волков Андрей Михайлович |
№16 |
| Захаров Даниил Михайлович |
№20 |
| Касаткин Михаил Александрович |
№7 |
| Коковин Даниил Евгеньевич |
№10 |
| Крутов Дмитрий Сергеевич |
№3 |
| Курицына Мария Евгеньевна |
№15 |
| Лавров Михаил Андреевич |
№2 |
| Максимова Мария Сергеевна |
№18 |
| Обжигалов Максим Сергеевич |
№8 |
| Орлов Олег Олегович |
№13 |
| Орлова Диана Сергеевна |
№2 |
| Рекут Георгий Александрович |
№18 |
| Фокин Арсений Алексеевич |
№4 |
| Харитонов Егор Андреевич |
№6 |
| Шевченко Роман Николаевич |
№17 |
ИВТ-23БО
| Имя |
Задача |
| Бакулин Владилен Максимович |
№11 |
| Варданян Армен Авагович |
№11 |
| Власов Евгений Максимович |
№15 |
| Ганжа Лилиана Александровна |
№5 |
| Гонобоблев Евгений Дмитриевич |
№19 |
| Дорофеев Даниил Григорьевич |
№12 |
| Дрожженикова Алина Сергеевна |
№10 |
| Калабин Данил Николаевич |
№7 |
| Кулаков Даниил Сергеевич |
№4 |
| Медведева Елизавета Андреевна |
№2 |
| Парамонов Егор Сергеевич |
№8 |
| Русанов Олег Сергеевич |
№12 |
| Рыбакова Полина Александровна |
№8 |
| Степаненко Кирилл Александрович |
№20 |
| Уваров Максим Евгеньевич |
№6 |
| Червинский Артём Алексеевич |
№5 |
| Четвертков Андрей Михайлович |
№16 |
| Ширкунов Артем Викторович |
№1 |
| Юркин Роман Юрьевич |
№12 |