Программист RoR

Основные требования:

  • Ruby On Rails и Ruby.
  • Умение отличить класс от метакласса, и вообще — умение писать и пользоваться DSL.
  • Умение не изобретать велосипеды, а пользоваться вместо этого плагинами и гемами для решения типовых задач.
  • А часто повторяющиеся — оформлять в виде плагинов и гемов.
  • Умение разворачивать приложения с помощью Capistrano.
  • Умение писать тесты и спеки, и понимание зачем же они все-таки нужны.
  • Умение кастовать на SQL (mySQL/postrgeSQL).
  • И совсем чудно, если вы имели дело с Sinatra, Sequel и прочими альтернативами.

Разминка

Для начала, несколько несложных вопросов. Опишите, как бы вы решили следующие задачи:

  1. Пользователь вводит адрес в форме на сайте. Нужно разобрать этот адрес на составные части и записать в базу отдельно дом, улицу, город и так далее. Каким образом вы осуществили бы разбор адреса?
  2. Нужно подсчитать шансы игроков в покер на выигрыш в определенной раздаче. Интерфейс ввода раздачи (карты на руках, карты на столе) значения не имеет. Как бы вы реализовали механизм подсчета?
  3. В базе хранятся объекты и их порядковые номера (задаются вручную). Требуется массово изменить порядковые номера у нескольких записей минимальным количеством запросов. Как это сделать?

Тестовое задание

Тестовое задание заключается в написании несложного управляющего интерфейса для магазина загогулин.

На сайте магазина загогулин отображаются товары (загогулины), разбитые по категориям. Категории имеют древовидную структуру.

У категории есть название, родитель (другая категория или NULL) и слаг (генерируется автоматически из названия товара).

Товар принадлежит к одной категории, его характеристики перечислены в Excel-файле. Кроме того, у товара есть множество фотографий (неограниченное по количеству). Одна из фотографий — главная, она будет выводится в списке товаров.

Необходимо:

  1. Сделать раздел редактирования категорий товаров. Администратор может:
    • Создать категорию.
    • Изменить категорию.
    • Удалить категорию (товары не должны в ней удаляться).
    • Изменить порядок категорий внутри ветки (перетаскиванием, на странице списка).
    • Переподчинить категорию другому родителю (перетаскиванием, как в дереве папок проводника).
  2. Сделать раздел редактирования товаров. Администратор может:
    • Создать товар (выбрав соответствующую категорию, и загрузив при этом фотографии).
    • Удалить товар.
    • Изменить товар.
    • Импортировать товары из Excel-файла. В файле могут быть ошибки.
  3. Защитить админку паролем (пользователь — один).
  4. Запрограммировать навигацию по двум разделам («Товары» и «Категории») в соответствии со стандартными правилами, чтобы всегда было понятно «Где я нахожусь?» и «Куда я могу отсюда пойти?».
  5. Магазин загогулин — многоязычный, в админке должна присутствовать возможность выбора текущего языка. Данные в версиях для разных языков полностью независимы (на русской — одни, на английской — другие), база — одна, пароль на админку — один.

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

И обязательно — инструкцию и пояснения.

Вакансия актуальна до 31 мая 2012 года.

Не забудьте ознакомиться с условиями работы и требованиями к сотрудникам.

Пара слов о проектном подходе

Написать о вакансии в Twitter Написать о вакансии в Facebook Написать о вакансии ВКонтакте

Всё готово? Пишите:

Сайт, блог, страничка, за которой вы ухаживаете, пропалываете её и поливаете
Приложите файл в удобном формате