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?