Взяли джуном на удалёнку, проект на Roda и PostgreSQL, фоновые задачи на Resque, всё крутится в Docker. Ruby 3.1. До этого я делал учебные штуки только на Rails, и вот третий день сижу дома на Удельной, в четыре уже темно, а я всё ищу, где тут контроллеры и модели. Материалов по Roda раз в сто меньше, чем по Rails. С чего начать, чтобы через месяц не было стыдно на ревью?
Первые две недели на Roda у всех ощущение, что всё лежит не там. Главное понять: контроллеров нет, есть дерево маршрутов, и запрос идёт по нему сверху вниз, пока не найдёт совпадение:
class App < Roda
plugin :json
route do |r|
r.on "api" do
r.on "orders" do
r.get Integer do |id|
Order[id].to_hash
end
r.post do
Order.create(r.params).to_hash
end
end
end
end
end
Всё остальное подключается плагинами, и в проекте их список собран в одном месте, в начале класса приложения. Пройдись по нему и прочитай документацию каждого плагина, обычно их штук десять, это и будет карта проекта. Модели, скорее всего, на Sequel, у него документация хорошая.
Ещё приём, который работает в любом незнакомом проекте: возьми один запрос из логов и пройди его руками от входа до базы, поставив binding.irb в паре мест. И не переживай, что знания по Rails пропадут: Rack, SQL, тесты и сам Ruby везде одинаковые.
Я сейчас захожу в Ruby с другой стороны, из PHP, и успокаивает ровно это: язык один, а фреймворк осваивается за пару недель