Экзамен по Ruby.
Разработка с нуля.
Здравствуйте, я студент и хотел узнать, согласитесь ли вы написать программу мне на экзамене по руби. Писать надо на роде, среда vs code. Это будет в понедельник 19.10 с 14:30 по мск. Времени будет 2-3 часа, пока не могу сказать точно. Если вы согласитесь, то...
ещёво сколько это выйдет по деньгам?
Требования к работе от преподавателя:
Результат работы - архив с исходными кодами, который прикрепляется как решение задачи.
Требования к знаниям учащихся
Уровень знакомства с синтаксисом языка 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.