Modèles pour les applications Web lourdes en ajax

12

Jusqu'à présent, j'ai été un grand fan du modèle MVC pour le développement d'applications Web. Pour le web, j'ai développé principalement en PHP (avec les frameworks Kohana et CodeIgniter) et Ruby (RoR).

Au fur et à mesure que mes applications s'alourdissent du côté d'Ajax (applications à page unique, etc.), j'ai remarqué que je ne peux m'empêcher de trahir les concepts très basiques de MVC: Javascript fait la plupart des travaux; appeler des contrôleurs juste pour demander des vues ou plus de code js / json semble incorrect.

Après m'être efforcé de conserver tous les travaux de routage dans les contrôleurs, je l'ai fondamentalement divisé entre eux et Javascript (c'est-à-dire, à partir du PoV du cadre, une partie des vues). Lorsque vous demandez json, la subversion MVC semble encore plus évidente: le code js faisant la requête est le contrôleur; le contrôleur du framework agit simplement comme un proxy pour les données du modèle - ce que je demande réellement.

Alors, que dois-je regarder?

Je pensais aux applications purement javascript, par exemple avec backbone.js et une base de données basée sur des documents, json-spitting (couchDB) comme backend, mais j'aime mes bases de données relationnelles.

Une autre option serait la suivante: je ferais juste des "modèles routés" en PHP / ruby ​​/ go / whatnot. Ceux-ci analyseront la demande, appelleront la base de données, redonneront du json.

Cette approche me semble intéressante mais il manque de documentation substantielle ou d'analyse académique, donc j'ai un peu peur du saut.

Des idées?

cbrandolino
la source
Vous souhaitez migrer vers quelque chose comme Socketstream . Qui est conçu pour les applications lourdes client en temps réel
Raynos
2
N'ayez pas peur du changement. Les bases de données relationnelles ont leur place, mais si votre projet n'appelle pas de base de données relationnelle, ne l'utilisez pas.
beatgammit

Réponses:

1

S'il n'y a pas d'analyse académique, faites-le vous-même. Expérimentez simplement sur votre prochain projet à petite échelle et voyez comment vous l'aimez. Lisez l'essai de Paul Graham sur les raisons pour lesquelles il a choisi Lisp pour sa startup, même s'il n'était pas couramment utilisé. http://www.paulgraham.com/avg.html

Il existe de nombreux frameworks javascript MVC. Si vous souhaitez créer une application principalement javascript, faites-le.

Construisez simplement une API reposante dans des rails ou tout autre framework que vous utilisez qui n'est qu'un wrapper pour la base de données, et vous n'aurez pas à abandonner votre base de données relationnelle. Appelez simplement l'API comme vous appelleriez la base de données s'il s'agissait d'une application logique basée sur un serveur.

De plus, si vous créez votre application de cette façon, vous pouvez très facilement intégrer la prise en charge hors ligne.

Seth Archer Brown
la source
Je vais essayer cela pour mon prochain projet. Quant aux frameworks javascript, que proposez-vous? Le seul que j'ai examiné pour l'instant est l'épine dorsale.
cbrandolino
Le backbone @cbrandolino a l'air bien du peu de temps que j'ai eu à jouer avec. Vous voudrez peut-être vérifier sammyjs.org pour un projet plus petit.
Seth Archer Brown