Шаблоны для ajax-тяжелых веб-приложений

12

До сих пор я был большим поклонником шаблона 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.

Этот подход мне интересен, но ему не хватает какой-либо существенной документации или академического анализа, поэтому я немного боюсь скачка.

Идеи?

cbrandolino
источник
Вы хотите перейти на что-то вроде Socketstream . Который предназначен для работы в режиме реального времени с тяжелыми клиентскими приложениями
Raynos
2
Не бойся перемен. Реляционные базы данных имеют свое место, но если ваш проект не требует реляционной базы данных, не используйте ее.
ритммит

Ответы:

1

Если нет никакого академического анализа, сделайте это самостоятельно. Просто поэкспериментируйте с вашим следующим небольшим проектом и посмотрите, как вам это понравится. Прочитайте эссе Пола Грэма о том, почему он выбрал Lisp для своего стартапа, хотя он обычно не использовался. http://www.paulgraham.com/avg.html

Существует множество JavaScript-фреймворков MVC. Если вы хотите создать преимущественно приложение на JavaScript, сделайте это.

Просто создайте успокаивающий API в rails или в любой используемой вами среде, которая является просто оболочкой для базы данных, и вам не придется отказываться от реляционной базы данных. Просто вызовите API, как если бы это было логическое приложение на сервере.

Кроме того, если вы создаете свое приложение таким образом, вы можете очень легко встроить автономную поддержку.

Сет Арчер Браун
источник
Я попробую это для моего следующего проекта. Что касается фреймворков JavaScript, что вы предлагаете? Единственный, который я изучил на данный момент, это позвоночник.
cbrandolino
Магистраль @cbrandolino выглядит хорошо из-за ограниченного количества времени, которое мне приходилось играть с ней. Возможно, вы захотите проверить sammyjs.org для меньшего проекта.
Сет Арчер Браун