Wzory dla aplikacji internetowych obciążonych przez ajax

12

Do tej pory byłem wielkim fanem wzorca MVC do tworzenia aplikacji internetowych. Dla sieci opracowałem głównie w PHP (z ramami Kohana i CodeIgniter) i Ruby (RoR).

Gdy moje aplikacje stają się coraz cięższe po stronie Ajaxa (aplikacje jednostronicowe itp.), Zauważyłem, że nie mogę nie zdradzić bardzo podstawowych pojęć MVC: JavaScript wykonuje większość zadań; wywoływanie kontrolerów tylko z prośbą o widoki lub więcej kodu js / json wydaje się błędne.

Po staraniach o zachowanie wszystkich zadań routingu w kontrolerach, teraz zasadniczo podzieliłem je między nich i Javascript (to znaczy, z PoV frameworka, części widoków). Gdy pytasz o jsona, subwersja MVC wygląda jeszcze bardziej oczywisto: kod js wykonujący żądanie jest kontrolerem; kontroler frameworku działa jedynie jako proxy dla danych modelu - o to tak naprawdę proszę.

Więc na co powinienem patrzeć?

Myślałem o aplikacjach czysto javascript, na przykład z backbone.js i opartą na dokumentach, plucie jsonem (couchDB) jako backendem, ale uwielbiam moje relacyjne bazy danych.

Inną opcją byłoby: po prostu wykonałbym „routowane modele” w PHP / ruby ​​/ go / whatnot. Ci przeanalizują żądanie, wywołają db, zwrócą trochę JSON.

To podejście wydaje mi się interesujące, ale brakuje w nim jakiejkolwiek obszernej dokumentacji lub analiz akademickich, więc trochę się boję.

Pomysły?

cbrandolino
źródło
Chcesz migrować do czegoś takiego jak Socketstream . Który jest przeznaczony do ciężkich aplikacji klienckich w czasie rzeczywistym
Raynos,
2
Nie bój się zmian. Relacyjne bazy danych mają swoje miejsce, ale jeśli twój projekt nie wymaga relacyjnej bazy danych, nie używaj jej.
beatgammit

Odpowiedzi:

1

Jeśli nie ma żadnej analizy akademickiej, zrób to sam. Po prostu eksperymentuj nad kolejnym projektem na małą skalę i zobacz, jak ci się podoba. Przeczytaj esej Paula Grahama na temat tego, dlaczego wybrał Lisp na swój startup, mimo że nie był powszechnie używany. http://www.paulgraham.com/avg.html

Istnieje wiele frameworków javascript MVC. Jeśli chcesz zbudować przede wszystkim aplikację javascript, zrób to.

Po prostu zbuduj spokojny interfejs API w szynach lub jakimkolwiek innym frameworku, który używasz, który jest tylko opakowaniem dla bazy danych, i nie będziesz musiał rezygnować z relacyjnej bazy danych. Wystarczy zadzwonić do interfejsu API, tak jak do bazy danych, gdyby była to aplikacja logiczna oparta na serwerze.

Ponadto, jeśli zbudujesz swoją aplikację w ten sposób, możesz bardzo łatwo włączyć obsługę offline.

Seth Archer Brown
źródło
Spróbuję tego do następnego projektu. Co do ram javascript, co sugerujesz? Jedyny, na który teraz patrzyłem, to kręgosłup.
cbrandolino
Szkielet @brandolino wygląda dobrze po ograniczonym czasie, w którym musiałem się nim bawić. Możesz sprawdzić sammyjs.org dla mniejszego projektu.
Seth Archer Brown