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?
źródło
Odpowiedzi:
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.
źródło