2011-12-12 15 views
9

Estoy en el proceso de desarrollar un nuevo sitio web. El nivel de complejidad del sitio estaría en algún lugar del orden de Yelp.com. Soy bastante nuevo para Ruby pero decidí que quiero desarrollar el backend usándolo. En el proceso, me topé con Sinatra. Realmente me encanta la simplicidad de la ruta en Sinatra y decidí usarla como punto de partida para mi desarrollo. Parece que la mayoría de los lugares dicen que Sinatra es ideal para un desarrollo rápido y para "pequeñas aplicaciones web". ¿Existe un problema de escalamiento inherente con Sinatra o los comentarios provienen del hecho de que básicamente tienes que construir todo desde cero? Cualquier comentario con respecto a su opinión sobre el uso de Sinatra como base para una aplicación web a gran escala sería apreciado.¿Hay algún problema con el uso de Sinatra para desarrollar un sitio web completo?

No estoy seguro si stackoverflow es el lugar correcto para hacer una pregunta de opinión como esta, pero es el único recurso que tengo actualmente a mi disposición para obtener algunos comentarios sobre algo como esto.

Respuesta

8

He construido mis dos últimos proyectos bastante complejos usando Sinatra y tengo disfruté el proceso. Lo que me gusta es que lo alienta a considerar la API de la aplicación web que está creando por adelantado en lugar de considerarlo como algo secundario.

Lo que tiendo a hacer ahora es poner a funcionar la API y probarla y luego construir el front-end con el navegador usando jQuery. Toda la interacción entre el frente y la parte posterior se realiza a través de la API.

Al dividir los métodos de ayuda en bibliotecas separadas y aprovechar las librerías de Ruby on Rails como ActiveRecord, etc. me parece que el código no es más difícil de mantener que cualquier otro código que he escrito, y es ciertamente fácil de probar.

He escrito algunas rutas genéricas simples que me permiten agrupar contenido de nivel de página (escrito en markdown, textil o haml) usando ideas similares al proyecto Nesta, lo que significa que el 99% de mis rutas son llamadas API que las llamadas de visualización de página. También agregué algunos buenos ayudantes para la construcción de navegación basada en reglas que realmente me ayudaron.

Así que, en resumen, la respuesta es no, no tiene nada de malo construir sitios web grandes con Sinatra, y de hecho creo que puede conducir a aplicaciones web mejor diseñadas.

+0

No estoy familiarizado con esta filosofía de API de API. ¿Podrías dirigirme a una fuente para leer más? Gracias por la respuesta, por cierto. – wuliwong

3

Crear un sitio grande con Sinatra no lo enfrentará con problemas de escalamiento, pero definitivamente le dificultará mantener el código. Aunque amo a Sinatra, la convención sobre la configuración en rieles gana sin límites. También tenga en cuenta que no es incorrecto/malo/imposible utilizar Sinatra para un sitio enorme, solo que es difícil hacerlo bien y no querrá lamentarse más tarde. Si aún eres obstinado en el uso de Sinatra, puedes probar Padrino que es básicamente un envoltorio sobre Sinatra (nunca lo he usado, así que no puedo ayudarte)

+0

He oído hablar de Padrino y lo que dices acerca de la convención es algo de lo que me preocupo. Definitivamente voy a mirar a Padrino. ¡Gracias! – wuliwong

+0

Solo un pequeño comentario adicional sobre Padrino, ellos recomiendan aprender Sinatra primero y dicen que normalmente puedes incluir lo que has hecho con Sinatra en una aplicación Padrino. Suena un poco mágico, pero Padrino es bastante modular para que pueda elegir y elegir piezas sin tener que usar todo el marco si así lo desea. – wuliwong

Cuestiones relacionadas