Domanda

Sto imparando Rails e hanno ben poco idea di Sinatra & Merb. Mi chiedevo sono le situazioni in cui si desidera utilizzare Merb / Sinatra.

Grazie per il tuo feedback!

È stato utile?

Soluzione

Sinatra è un framework di peso più leggero molto più piccolo di Rails. Viene utilizzato, se si vuole ottenere qualcosa in esecuzione rapidamente che appena spedisce fuori di un paio di URL e restituisce un po 'di contenuto semplice. Date un'occhiata alla Sinatra home page ; questo è tutto ciò che serve per ottenere un "Ciao, mondo" installato e funzionante, mentre in Rails si avrebbe bisogno di generare una struttura di tutto il progetto, ha istituito un controller e una vista, istituito il routing, e così via (non ho scritto un'applicazione Rails in un po ', quindi non so esattamente quanti passi "Ciao, mondo" è, ma la sua certamente più di Sinatra). Sinatra ha anche molte meno dipendenze rispetto Rails, quindi è più facile da installare ed eseguire.

Stiamo usando Sinatra come un server di prova web rapido per alcune librerie client web che stiamo scrivendo adesso. Il fatto che siamo in grado di scrivere un singolo file e comprendono tutta la nostra logica che un file, e sono molto pochi dipendenze, significa che è molto più facile da lavorare e fare le prove che se aveste un'applicazione Rails.

che viene incorporata in Rails , così bella presto, non ci dovrebbe essere davvero alcun motivo di utilizzare uno sopra l'altro. È stato originariamente progettato per essere il peso un po 'più leggero e più disaccoppiato di Rails; Rails avevano più costruito in ipotesi che si usa ActiveRecord. Ma come si stanno fondendo i due, che sono il disaccoppiamento Rails in modo simile, quindi se si sta già imparando Rails, allora è probabilmente vale la pena di restare solo con quello e seguire gli sviluppi come vengono.

Altri suggerimenti

Non posso parlare tanto per Merb, ma Sinatra è altamente efficace per soluzioni di piccole dimensioni o leggeri. Se non si lavora con un sacco di codice, o non hanno bisogno di un sito web enorme, è possibile codificare un sito molto efficace con Sinatra sia più veloce, o due volte più veloce sulle rotaie (a mio parere).

Sinatra è anche eccellente per pezzi frammentari di un'applicazione, per esempio il front-end per un software statistico. O qualcosa di simile ErrCount , che è solo una molto semplice contatore di visite.

Quindi pensare leggero, veloce, e le applicazioni web altamente semplicistiche (anche se la complessità è la vostra scelta) quando si utilizza Sinatra.

Il modo in cui le cose stanno andando, sta andando ad essere una questione controversa presto.

Come già accennato, Merb 2.0 e Rails 3.0 stanno per essere la stessa cosa. Le squadre di nucleo di nuova combinati Merb e le rotaie sono già al lavoro sul raggiungimento di questo. Non so se sono ancora in programma su un rilascio (probabilmente un beta) di RailsConf a maggio, ma è sicuramente accadendo quest'anno.

Se sei morto insieme utilizzando un ORM diverso da ActiveRecord, per esempio, si potrebbe iniziare con Merb ora e aggiornamento quando 2,0 (Rails 3.0) navi. In questo momento, Merb è generalmente accettato di fornire un quadro migliore per variare i propri componenti di Rails.

Sinatra si presenta come una soluzione brillante per una web app che ha una bassa complessità interfaccia e un po 'di codice del modello di livello inferiore di quanto sarebbe normale per Merb / Rails. L'implementazione RESTful API semplici sarebbe un grande uso. Sono meno convinto del suo valore quando si tratta di qualsiasi quantità di HTML, tanto meno quando template viene coinvolto.

Anche in questo caso, con Rails (e quindi Merb presto) ora seduto sulla cima di rack, non c'è ragione di non includere bambino Sinatra applicazioni nella soluzione: possono vivere insieme. C'è un blog post che discute quel concetto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top