Até agora, sou um grande fã do padrão MVC para o desenvolvimento de aplicativos da web. Para a web, desenvolvi principalmente em PHP (com as estruturas Kohana e CodeIgniter) e Ruby (RoR).
À medida que meus aplicativos ficam mais pesados no lado do Ajax (aplicativos de página única, etc.), notei que não posso deixar de trair os conceitos básicos do MVC: Javascript está fazendo a maioria dos trabalhos; chamar os controladores apenas para solicitar visualizações ou mais códigos js / json parece errado.
Depois de tentar manter todos os trabalhos de roteamento nos controladores, agora eu o dividi fundamentalmente entre eles e o Javascript (ou seja, no PoV da estrutura, parte das visualizações). Ao solicitar o json, o subversion do MVC parece ainda mais óbvio: o código js que faz o pedido é o controlador; o controlador da estrutura está apenas atuando como proxy para os dados do modelo - o que estou realmente pedindo.
Então, o que devo procurar?
Eu estava pensando em aplicativos javascript puro, por exemplo, com backbone.js e um banco de dados json spitting (couchDB) baseado em documentos como back-end, mas eu amo meus bancos de dados relacionais.
Outra opção seria a seguinte: Eu apenas faria "modelos roteados" em PHP / ruby / go / whatnot. Eles analisarão a solicitação, chamarão o db, devolverão algum json.
Essa abordagem me parece interessante, mas carece de documentação ou análise acadêmica substancial, por isso tenho um pouco de medo do salto.
Ideias?