Im запутался в Синатре (рубиновый каркас).
Является ли это легкой заменой Rails или вы можете использовать их рядом?
Можете ли вы сделать веб-приложение (как в Rails)? Например, твитер-клон?
Im запутался в Синатре (рубиновый каркас).
Является ли это легкой заменой Rails или вы можете использовать их рядом?
Можете ли вы сделать веб-приложение (как в Rails)? Например, твитер-клон?
Синатра не рельсы. Это микро-каркас, используемый для простых веб-сайтов, где вам может потребоваться просто определить несколько действий. Вы можете сделать приложение Sinatra столь же сложным, как вы хотите, но вы попадете в точку, где ваш код станет сумасшедшим беспорядком раньше, чем с Rails.
Хотя он не на 100% точнее, Sinatra в основном вписывается в архитектурный шаблон Page Controller, а Rails - это ясный MVC.
Чтобы ответить на ваши вопросы конкретно:
В настоящее время мы используем Sinatra для производственного проекта (еще не развернутого, но все еще в dev).
В основном это обертывание базы данных, используемой устаревшим приложением, и предоставление веб-сервисов REST другим приложениям внутри, чтобы они могли взаимодействовать с устаревшим приложением, не имея прямого доступа к БД.
Rails рассматривался, но не использовался, потому что:
Учитывая эти требования, Rails можно использовать, но overkill, где, когда Sinatra попадает в пятно красиво.
Возьмите мой ответ с небольшим количеством соли (потому что я до сих пор не применял приложение для синатры), но синатра "сладкое пятно" - это микро-приложения: крошечные небольшие приложения, где полная структура MVC будет излишней, С помощью Sinatra вы можете создать целое веб-приложение с одним файлом кода.
Примером "микроприложения" является rubular (обратите внимание, однако, что я понятия не имею, в какой структуре он написан). Рубкул делает одно, и одно очень хорошо. Использование рельсов было бы излишним.
Мы использовали Sinatra для http://tweetarium.com, так как madlep usecase большая часть сайта - это просто вызовы AJAX, поэтому взгляды очень просты.
Мы не используем ORM, просто сериализируем JSON из API twitter и кешируем его в TokyoCabinet
Я лично считаю, что Sinatra отлично подходит для API. Каждая версия может быть другим приложением Sinatra, смонтированным на другой конечной точке, и вы можете запустить его внутри своего приложения Rails.