Подтвердить что ты не робот

Для чего вы используете Sinatra?

Im запутался в Синатре (рубиновый каркас).

Является ли это легкой заменой Rails или вы можете использовать их рядом?

Можете ли вы сделать веб-приложение (как в Rails)? Например, твитер-клон?

4b9b3361

Ответ 1

Синатра не рельсы. Это микро-каркас, используемый для простых веб-сайтов, где вам может потребоваться просто определить несколько действий. Вы можете сделать приложение Sinatra столь же сложным, как вы хотите, но вы попадете в точку, где ваш код станет сумасшедшим беспорядком раньше, чем с Rails.

Хотя он не на 100% точнее, Sinatra в основном вписывается в архитектурный шаблон Page Controller, а Rails - это ясный MVC.

Чтобы ответить на ваши вопросы конкретно:

  • не, предназначенный для замены Rails
  • Он может работать бок о бок
  • мог создать твитер-клон в Sinatra

Ответ 2

В настоящее время мы используем Sinatra для производственного проекта (еще не развернутого, но все еще в dev).

В основном это обертывание базы данных, используемой устаревшим приложением, и предоставление веб-сервисов REST другим приложениям внутри, чтобы они могли взаимодействовать с устаревшим приложением, не имея прямого доступа к БД.

Rails рассматривался, но не использовался, потому что:

  • Нет уровня представления (по существу, это только ответы JSON/XML REST) ​​
  • Модель реализована с использованием Sequel (ActiveRecord отвлекает работу с устаревшими БД с изворотливыми, нестандартными структурами, но Sequel для этого неплохо)
  • Уровень контроллера и маршрутизации довольно прост (хотя в Ruby поддерживается некоторая сложная бизнес-логика)

Учитывая эти требования, Rails можно использовать, но overkill, где, когда Sinatra попадает в пятно красиво.

Ответ 3

Возьмите мой ответ с небольшим количеством соли (потому что я до сих пор не применял приложение для синатры), но синатра "сладкое пятно" - это микро-приложения: крошечные небольшие приложения, где полная структура MVC будет излишней, С помощью Sinatra вы можете создать целое веб-приложение с одним файлом кода.

Примером "микроприложения" является rubular (обратите внимание, однако, что я понятия не имею, в какой структуре он написан). Рубкул делает одно, и одно очень хорошо. Использование рельсов было бы излишним.

Ответ 4

Мы использовали Sinatra для http://tweetarium.com, так как madlep usecase большая часть сайта - это просто вызовы AJAX, поэтому взгляды очень просты.

Мы не используем ORM, просто сериализируем JSON из API twitter и кешируем его в TokyoCabinet

Я лично считаю, что Sinatra отлично подходит для API. Каждая версия может быть другим приложением Sinatra, смонтированным на другой конечной точке, и вы можете запустить его внутри своего приложения Rails.