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?
fonte
Respostas:
Se não houver análise acadêmica, faça você mesmo. Experimente no seu próximo projeto de pequena escala e veja como você gosta. Leia o ensaio de Paul Graham sobre por que ele escolheu o Lisp para sua startup, mesmo que não fosse comumente usado. http://www.paulgraham.com/avg.html
Existem muitas estruturas de JavaScript do MVC por aí. Se você deseja criar um aplicativo principalmente javascript, faça-o.
Basta criar uma API repousante nos trilhos ou em qualquer estrutura que você use, que é apenas um invólucro para o banco de dados, e você não terá que desistir do banco de dados relacional. Basta chamar a API como você chamaria o banco de dados se este fosse um aplicativo lógico baseado em servidor.
Além disso, se você criar seu aplicativo dessa maneira, poderá criar suporte offline com muita facilidade.
fonte