Padrões para aplicativos da Web pesados ​​com Ajax

12

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?

cbrandolino
fonte
Você deseja migrar para algo como o Socketstream . Que é projetado para tempo real, aplicações pesadas cliente
Raynos
2
Não tema a mudança. Os bancos de dados relacionais têm seu lugar, mas se o seu projeto não exigir um banco de dados relacional, não o utilize.
Beatgammit 11/09/11

Respostas:

1

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.

Seth Archer Brown
fonte
Vou tentar isso para o meu próximo projeto. Quanto às estruturas javascript, o que você sugere? O único que eu analisei agora é a espinha dorsal.
Cbrandolino 14/09/11
O backbone do @cbrandolino parece ser bom pelo tempo limitado que tive que jogar com ele. Convém verificar o sammyjs.org para um projeto menor.
Seth Archer Brown