В каких сценариях можно использовать Sinatra или Merb?

StackOverflow https://stackoverflow.com/questions/732560

  •  06-09-2019
  •  | 
  •  

Вопрос

Я изучаю Rails и очень мало знаю о Sinatra и Merb.Мне было интересно, в каких ситуациях вы будете использовать Merb/Sinatra.

Спасибо за ваш отзыв!

Это было полезно?

Решение

Sinatra — гораздо меньший и более легкий фреймворк, чем Rails.Он используется, если вы хотите быстро запустить что-то, что просто отправляет несколько URL-адресов и возвращает простой контент.Взгляните на Домашняя страница Синатры;это все, что вам нужно, чтобы запустить «Hello, World», в то время как в Rails вам нужно будет сгенерировать всю структуру проекта, настроить контроллер и представление, настроить маршрутизацию и так далее (я этого не делал). давно написал приложение на Rails, поэтому я не знаю точно, сколько шагов занимает «Hello, World», но это определенно больше, чем у Синатры).Sinatra также имеет гораздо меньше зависимостей, чем Rails, поэтому его проще установить и запустить.

Мы используем Sinatra в качестве веб-сервера быстрого тестирования для некоторых библиотек веб-клиентов, которые сейчас пишем.Тот факт, что мы можем написать один единственный файл и включить в него всю нашу логику и иметь очень мало зависимостей, означает, что с нашими тестами намного проще работать и запускать их, чем если бы у вас было приложение Rails.

Мерб объединяется с Rails, так что довольно скоро не будет никакой причины использовать один вместо другого.Первоначально он был разработан так, чтобы быть немного легче и более несвязным, чем Rails;В Rails было больше встроенных предположений, что вы будете использовать ActiveRecord.Но, объединяя их, они аналогичным образом отделяют Rails, поэтому, если вы уже изучаете Rails, то, вероятно, стоит просто придерживаться этого и следить за развитием событий по мере их поступления.

Другие советы

Я не могу много говорить о Merb, но Sinatra очень эффективен для небольших или легких решений.Если вы не работаете с большим количеством кода или вам не нужен огромный веб-сайт, вы можете написать очень эффективный сайт с помощью Sinatra либо так же быстро, либо в два раза быстрее, чем на Rails (по моему мнению).

Sinatra также отлично подходит для фрагментарных частей приложения, например, для интерфейса пакета статистики.Или что-то вроде ЭррКаунт, который представляет собой очень простой счетчик посещений.

Поэтому при использовании Sinatra подумайте о легких, быстрых и очень упрощенных веб-приложениях (хотя сложность — на ваш выбор).

Судя по тому, как идут дела, скоро этот вопрос станет спорным.

Как уже упоминалось, Merb 2.0 и Rails 3.0 будут одним и тем же.Недавно объединенные основные команды Merb и Rails уже работают над достижением этой цели.Я не знаю, планируют ли они еще выпуск RailsConf (возможно, бета-версии) в мае, но это определенно произойдет в этом году.

Например, если вы решительно настроены использовать ORM, отличный от ActiveRecord, вы можете начать с Merb сейчас и обновить его, когда выйдет версия 2.0 (Rails 3.0).В настоящее время принято считать, что Merb обеспечивает лучшую основу для разнообразия компонентов, чем Rails.

Sinatra выглядит блестящим решением для веб-приложения с низким уровнем сложности интерфейса и несколько более низким кодом на уровне модели, чем обычно для Merb/Rails.Внедрение простых API-интерфейсов RESTful было бы отличным вариантом.Я менее убежден в его ценности, когда задействовано какое-либо количество HTML, и еще меньше, когда задействованы шаблоны.

Опять же, поскольку Rails (а вскоре и Merb) теперь находится поверх Rack, нет причин не включать в решение детские приложения Sinatra:они могут жить вместе.Есть сообщение в блоге, в котором обсуждается эта самая концепция

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top