Patrones para aplicaciones web pesadas ajax

12

Hasta ahora, he sido un gran admirador del patrón MVC para desarrollar aplicaciones web. Para la web, he desarrollado principalmente en PHP (con los marcos Kohana y CodeIgniter) y Ruby (RoR).

A medida que mis aplicaciones se vuelven más pesadas en el lado de Ajax (aplicaciones de una sola página, etc.) noté que no puedo evitar traicionar los conceptos muy básicos de MVC: Javascript está haciendo la mayoría de los trabajos; llamar a los controladores solo para solicitar vistas o más código js / json parece incorrecto.

Después de luchar por mantener todos los trabajos de enrutamiento en los controladores, ahora lo he dividido fundamentalmente entre ellos y Javascript (es decir, desde el punto de vista del marco, parte de las vistas). Al preguntar por json, la subversión MVC parece aún más obvia: el código js que realiza la solicitud es el controlador; el controlador del framework simplemente está actuando como proxy de los datos del modelo, lo que realmente estoy pidiendo.

Entonces, ¿qué debo investigar?

Estaba pensando en aplicaciones de javascript puro, por ejemplo, con backbone.js y una base de datos basada en documentos y escupiendo json (couchDB) como back-end, pero me encantan mis bases de datos relacionales.

Otra opción sería la siguiente: simplemente haría "modelos enrutados" en PHP / ruby ​​/ go / whatnot. Esos analizarán la solicitud, llamarán a la base de datos, devolverán algo de json.

Este enfoque me parece interesante, pero carece de documentación sustancial o análisis académico, por lo que tengo un poco de miedo al salto.

Ideas?

cbrandolino
fuente
Desea migrar a algo como Socketstream . Diseñado para aplicaciones pesadas de clientes en tiempo real
Raynos
2
No temas al cambio. Las bases de datos relacionales tienen su lugar, pero si su proyecto no requiere una base de datos relacional, no la use.
beatgammit

Respuestas:

1

Si no hay ningún análisis académico, hágalo usted mismo. Simplemente experimente en su próximo proyecto a pequeña escala y vea cómo le gusta. Lea el ensayo de Paul Graham sobre por qué eligió a Lisp para su inicio, a pesar de que no se usa comúnmente. http://www.paulgraham.com/avg.html

Hay muchos marcos MVC javascript por ahí. Si desea crear una aplicación principalmente de JavaScript, hágalo.

Simplemente cree una API tranquila en rails o cualquier marco que use que sea solo un contenedor para la base de datos, y no tendrá que renunciar a su base de datos relacional. Simplemente llame a la API como llamaría a la base de datos si fuera una aplicación lógica basada en servidor.

Además, si construye su aplicación de esta manera, puede incorporar soporte fuera de línea muy fácilmente.

Seth Archer Brown
fuente
Intentaré esto para mi próximo proyecto. En cuanto a los marcos de javascript, ¿qué sugieres? El único que he investigado por ahora es la columna vertebral.
cbrandolino
La columna vertebral de @cbrandolino se ve bien por el tiempo limitado que he tenido para jugar con ella. Es posible que desee consultar sammyjs.org para un proyecto más pequeño.
Seth Archer Brown el