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?


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.