Muster für ajaxlastige Webanwendungen

12

Bisher war ich ein großer Fan des MVC-Musters für die Entwicklung von Webanwendungen. Für das Web habe ich hauptsächlich PHP (mit den Frameworks Kohana und CodeIgniter) und Ruby (RoR) entwickelt.

Als meine Anwendungen auf der Ajax-Seite immer umfangreicher wurden (Apps mit nur einer Seite usw.), bemerkte ich, dass ich die grundlegenden Konzepte von MVC nur verraten konnte: Javascript erledigt die meisten Arbeiten; Das Anrufen von Controllern, nur um nach Ansichten oder mehr js / json-Code zu fragen, scheint falsch.

Nachdem ich versucht habe, alle Routing-Jobs in den Controllern zu belassen, habe ich sie jetzt grundlegend zwischen ihnen und Javascript aufgeteilt (das heißt, aus der PoV des Frameworks, Teil der Ansichten). Wenn Sie nach json fragen, wird die MVC-Subversion noch offensichtlicher: Der js-Code, der die Anforderung ausführt, ist der Controller. Der Controller des Frameworks fungiert lediglich als Proxy für die Daten des Modells - wonach ich eigentlich frage.

Also, worauf soll ich achten?

Ich habe über reine Javascript-Anwendungen nachgedacht, zum Beispiel mit backbone.js und einer dokumentbasierten, jsonspuckenden Datenbank (couchDB) als Backend, aber ich liebe meine relationalen Datenbanken.

Eine andere Option wäre die folgende: Ich würde nur "geroutete Modelle" in PHP / ruby ​​/ go / whatnot erstellen. Diese analysieren die Anfrage, rufen die Datenbank an und geben etwas Json zurück.

Dieser Ansatz sieht für mich interessant aus, aber es fehlen wesentliche Unterlagen oder akademische Analysen, so dass ich ein wenig Angst vor dem Sprung habe.

Ideen?

cbrandolino
quelle
Sie möchten auf etwas wie Socketstream migrieren . Welches für Echtzeit-Client-schwere Anwendungen ausgelegt ist
Raynos
2
Fürchte dich nicht vor Veränderungen. Relationale Datenbanken haben ihren Platz, aber wenn Ihr Projekt keine relationale Datenbank erfordert, verwenden Sie sie nicht.
Beatgammit

Antworten:

1

Wenn es keine akademische Analyse gibt, machen Sie es selbst. Experimentieren Sie einfach mit Ihrem nächsten kleinen Projekt und sehen Sie, wie es Ihnen gefällt. Lesen Sie Paul Grahams Aufsatz darüber, warum er sich für Lisp als Startup entschieden hat, obwohl es nicht allgemein verwendet wird. http://www.paulgraham.com/avg.html

Es gibt viele MVC-Javascript-Frameworks. Wenn Sie in erster Linie eine Javascript-Anwendung erstellen möchten, dann tun Sie es.

Erstellen Sie einfach eine ausruhende API in Rails oder in einem beliebigen Framework, das nur ein Wrapper für die Datenbank ist, und Sie müssen nicht auf Ihre relationale Datenbank verzichten. Rufen Sie die API einfach so auf, als würden Sie die Datenbank aufrufen, wenn dies eine serverbasierte Logikanwendung wäre.

Wenn Sie Ihre App auf diese Weise erstellen, können Sie außerdem ganz einfach die Offline-Unterstützung einbauen.

Seth Archer Brown
quelle
Ich werde dies für mein nächstes Projekt versuchen. Was schlagen Sie für Javascript-Frameworks vor? Das Einzige, in das ich mich bisher vertieft habe, ist das Rückgrat.
Cbrandolino
@ Cbrandolino Backbone sieht gut aus, da ich nur wenig Zeit hatte, um damit zu spielen. Vielleicht möchten Sie in sammyjs.org nach einem kleineren Projekt suchen .
Seth Archer Brown