До сих пор я был большим поклонником шаблона MVC для разработки веб-приложений. Для Интернета я разработал в основном на PHP (с фреймворками Kohana и CodeIgniter) и Ruby (RoR).
По мере того, как мои приложения становятся тяжелее на стороне Ajax (одностраничные приложения и т. Д.), Я заметил, что не могу не предать самые базовые концепции MVC: Javascript выполняет большую часть работы; Вызов контроллеров просто для запроса представлений или большего количества кода js / json кажется неправильным.
После стремления сохранить все задания маршрутизации в контроллерах, теперь я фундаментально разделил их между ними и Javascript (то есть из PoV платформы, части представлений). При запросе json подрывная деятельность MVC выглядит еще более очевидной: код js, выполняющий запрос, является контроллером; контроллер фреймворка просто действует как прокси для данных модели - то, что я на самом деле прошу.
Итак, на что мне обратить внимание?
Я думал о приложениях на чистом javascript, например, с backbone.js и базирующейся на документе базой данных json-spitting (couchDB) в качестве бэкэнда, но мне нравятся мои реляционные базы данных.
Другой вариант будет следующим: я просто создаю «маршрутизируемые модели» в PHP / ruby / go / whatnot. Те проанализируют запрос, вызовут БД, вернут немного json.
Этот подход мне интересен, но ему не хватает какой-либо существенной документации или академического анализа, поэтому я немного боюсь скачка.
Идеи?
источник
Ответы:
Если нет никакого академического анализа, сделайте это самостоятельно. Просто поэкспериментируйте с вашим следующим небольшим проектом и посмотрите, как вам это понравится. Прочитайте эссе Пола Грэма о том, почему он выбрал Lisp для своего стартапа, хотя он обычно не использовался. http://www.paulgraham.com/avg.html
Существует множество JavaScript-фреймворков MVC. Если вы хотите создать преимущественно приложение на JavaScript, сделайте это.
Просто создайте успокаивающий API в rails или в любой используемой вами среде, которая является просто оболочкой для базы данных, и вам не придется отказываться от реляционной базы данных. Просто вызовите API, как если бы это было логическое приложение на сервере.
Кроме того, если вы создаете свое приложение таким образом, вы можете очень легко встроить автономную поддержку.
источник