Pergunta

Estou aprendendo Rails e têm muito pouca idéia sobre Sinatra & Merb. Eu queria saber se as situações em que você usaria Merb / Sinatra.

Obrigado por seu feedback!

Foi útil?

Solução

Sinatra é uma estrutura de peso muito menor, mais leve do que Rails. Ele é usado se você deseja obter alguma coisa correr rapidamente que apenas despachos off de alguns URLs e retornos algum conteúdo simples. Dê uma olhada na home page Sinatra ; isso é tudo que você precisa para obter um "Olá, mundo" instalado e funcionando, enquanto em Rails seria necessário para gerar uma estrutura de projeto todo, configurar um controlador e uma vista, configurar o roteamento, e assim por diante (não tenho escrito uma aplicação Rails em um tempo, então eu não sei exatamente quantos passos "Olá, mundo" é, mas a sua certamente mais do que Sinatra). Sinatra também tem muito menos dependências do que Rails, por isso é mais fácil de instalar e executar.

Estamos usando Sinatra como um servidor de teste web rápida para algumas bibliotecas de cliente web que estamos escrevendo agora. O fato de que podemos escrever um único arquivo e incluir toda a nossa lógica em que um arquivo, e têm muito poucas dependências, significa que é muito mais fácil de trabalhar e executar nossos testes que se você tivesse um aplicativo Rails.

está sendo incorporada pela Rails , tão bonita logo não deve ser realmente qualquer razão para usar um sobre o outro. Ele foi originalmente projetado para ser um pouco mais leve e mais dissociado do que Rails; Rails tinha mais construída em suposições que você usaria ActiveRecord. Mas como eles estão se fundindo os dois, eles são a dissociação Rails de maneiras semelhantes, por isso, se você já está aprendendo Rails, então é provavelmente vale a pena ficar com isso e acompanhar a evolução como eles vêm.

Outras dicas

Eu não posso falar muito para Merb, mas Sinatra é altamente eficaz para soluções pequenas ou leves. Se você não está trabalhando com um monte de código, ou não precisa de um grande site, você pode codificar um site muito eficaz com Sinatra seja tão rápido, ou duas vezes tão rápido quanto on Rails (na minha opinião).

Sinatra também é excelente para peças fragmentárias de uma aplicação, por exemplo, o front-end para um pacote de estatísticas. Ou algo como ErrCount , que é apenas um contador de visitas realmente simples.

Então, pense sobre leve, rápido, e aplicações web altamente simplistas (embora a complexidade é a sua escolha) ao usar Sinatra.

A forma como as coisas estão indo, ele vai ser uma questão discutível em breve.

Como já mencionado, Merb 2.0 e Rails 3.0 vai ser a mesma coisa. As equipes do núcleo Merb e Rails recém-combinadas já estão trabalhando em conseguir isso. Eu não sei se eles ainda estão pensando em um lançamento (provavelmente um beta) por RailsConf em maio, mas está definitivamente acontecendo este ano.

Se você está morto em conjunto usando um ORM diferente ActiveRecord, por exemplo, que você pode começar com Merb agora e actualização quando 2,0 (Rails 3.0) navios. Agora, Merb é geralmente aceite para fornecer um melhor enquadramento para diferentes componentes de um do que Rails.

Sinatra parece uma solução brilhante para uma aplicação web que tem baixa complexidade interface e código de nível modelo um pouco menor do que seria normal para Merb / Rails. Implementação APIs RESTful simples seria uma grande utilidade. Estou menos convencido sobre o seu valor quando qualquer quantidade de HTML está envolvido, menos ainda quando templates se envolve.

Novamente, com Rails (e, portanto, Merb breve) agora sentado em cima de Rack, não há nenhuma razão para não incluir bebê Sinatra aplicativos na solução: eles podem viver juntos. Há um blog post que discute que próprio conceito

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top