В настоящее время у меня есть страница http://proctors.org/tv, которая управляется несколькими представлениями и вложениями с множеством jQuery и спаретированных спагетти JavaScript, и я бы хотел их очистить. Я понимаю, что новые фреймворки Javascript "MVC" используют шаблоны и не хранят строго все данные в DOM, как вы могли бы сделать с jQuery.
Я полагаю, что вы бы использовали что-то вроде Services и / или Views в качестве бэкенда, с Backbone на передней панели.
Есть проект Do для Backbone , и я помню, что в DrupalCon Denver был BoF или Session ...
Я надеюсь выяснить, стоит ли моего времени попытаться переписать это в новом фреймворке или просто почистить то, что у меня здесь есть.
javascript
Райан Прайс
источник
источник
Ответы:
Я использовал и Ember, и Backbone вместе с Drupal - но не так, как вы думаете.
Ember и Backbone являются прекрасными инструментами для создания веб-приложений, но Drupal не очень хороший инструмент для использования вместе с ними. То, что вы хотите, когда вы создали веб-приложение, является чем-то легким и быстрым. Вы хотите, чтобы он был быстрым, чтобы дать вашим пользователям ощущение немедленного ответа. Вы хотите, чтобы он был легким, чтобы он лучше масштабировался. Drupal не быстр - полная загрузка Drupal занимает много времени (по сравнению с множеством других опций), если все, что вам нужно, это предоставить REST API для вашего веб-приложения. Drupal - это PHP, который также делает его очень требовательным к памяти, ограничивая количество одновременных пользователей.
Так что, если Drupal так плох для этого, зачем его использовать?
Вы должны действительно использовать Drupal для того, что Drupal превосходит в - CMS. То, что я делал в прошлом с проектами, которым требовалось веб-приложение, - это использование Drupal для создания CMS вокруг веб-приложения. Создавать такие вещи, как блоги, списки контента и тому подобное. Я также создал модули для определения некоторых внутренних вещей, таких как определения схемы, и других вещей, в которых было целесообразно использовать Drupal, потому что это значительно облегчило мою разработку.
Вместо того чтобы использовать Drupal для создания REST API, необходимого для веб-приложения, я использовал Node.js для создания реального REST API и других проверок AJAX-вызовов, которые необходимо выполнить веб-приложению. Node.js превосходен в этом. Это очень быстро (время отклика всего 30 мс для списка объектов). Он также очень легкий, поскольку JavaScript на сервере использует асинхронные действия, сервер Node.js обычно может обрабатывать тысячи одновременно работающих пользователей, где PHP может обрабатывать, может быть, 100. В дополнение к этому - поскольку Node.js - это JavaScript, вы можете многократно использовать много код сервера и клиентской части. Вы можете буквально написать один и тот же код проверки, вместо того, чтобы реализовывать как клиентскую часть на JavaScript, так и серверную на PHP. Если вы собираетесь посетить Drupal con в Мюнхене через несколько недель - вам стоит посмотреть презентацию node.js,
Так что если вы разработчик, я бы настоятельно рекомендовал выполнить аналогичную настройку и использовать Drupal только для того, в чем он действительно хорош. Если вы хотите создать простое веб-приложение и не ожидаете большого количества пользователей, использование Drupal в качестве бэкэнда может быть хорошим вариантом, если это поможет вашему времени разработки.
Обновление Drupal 8
Таким образом, с выпуском Drupal 8 некоторые из вышеперечисленных остаются в силе, но не в той же степени, как раньше. Drupal 8 похож на Drupal 7, а не на легкий инструмент, такой как Node.js, Rails, Django и т. Д. Поскольку приложения JavaScript в основном используют различные сервисы, вам все равно следует подумать, является ли Drupal лучшим инструментом для этого.
С Drupal 8 многое улучшилось. Сервисы гораздо более нативные, с Symphony, который управляет запросом / ответом. Drupal 8 имеет много интересных возможностей с расширенным кэшированием и всеми замечательными функциями. Но даже несмотря на все достоинства Drupal 8, он все же намного тяжелее, чем приложения с небольшим весом. Трудно сказать, насколько успешный Drupal 8 может быть использован в качестве быстрого поставщика веб-сервисов.
Тем не менее, несмотря на все сказанное и сделанное, моя общая рекомендация остается прежней. Будучи разработчиком Drupal, Drupal легко использовать для всего, поскольку мы с ним знакомы. Он чувствует себя в безопасности, и Drupal можно использовать практически для чего угодно. Помните, что хотя можно использовать Drupal для чего угодно, это не значит, что это лучший инструмент для всего. Проведение тщательного анализа и понимание сильных и слабых сторон инструментов, которые вы хотите использовать в ИТ-проекте, всегда будет большой помощью и поможет вам избежать попадания в тупиковую позицию с результатом, который не соответствует вашим ожиданиям ,
источник
Недавно я начал разрабатывать свое первое приложение «позвоночник + друпал», и мне это очень нравится. Использование модуля Backbone вместе со службами, представлениями служб и необходимыми библиотеками. Проект довольно прост: создать управляемую каруселью контента из 6 страниц, которые отображают различные данные, вместе с дополнительным слайдером новостей, отображающим различное содержимое. Эта страница находится на разных экранах без взаимодействия с пользователем, поэтому требуется возможность обновления содержимого интерфейса без обновления браузера. Я подумал, что это идеально вписывается в приложение Drupal + Backbone, где Drupal управляет контентом, а магистраль управляет и синхронизируется с БД. Я интегрировал в jquery.cycle 2, который имеет потрясающий API и хорошо вписывается в стиль кодирования MVC.
Я могу понять, почему люди могут задирать нос при использовании Drupal в качестве бэкэнд-фреймворка, но для таких небольших приложений, как этот, Drupal легок и быстр . Я добился этого, начав с минимальной установки и тщательно подбирая модули contrib и core. Сейчас у меня около 50 модулей и чуть менее 150 строк пользовательского JS-кода для магистрали, и я почти закончил.
В конце концов, я попытаюсь зафиксировать это в качестве примера для базового модуля, так как в настоящее время нет примера, который показывает, как использовать представления в качестве коллекций и т. Д.
В заключение:
Стоит потратить на это время, если ваш проект хорошо подходит. На мой взгляд, с проблемами производительности, вызванными тяжестью Drupal, можно легко бороться с помощью механизмов кэширования, таких как Varnish, или даже ускоренного или основного кэширования страниц. Гибкость и скорость разработки от использования Drupal полностью перевешивают негативы для меня.
источник
Основной ответ - да, некоторые люди используют его. Я не использовал его сам (пока не нашел подходящего проекта), но в настоящее время существует группа Drupal для него, и она также будет соответствовать Инициативе Web-сервисов и Context Core, которая является одной из инициатив Drupal 8 , Существует также сессия на DrupalCon Munich 2012, Backbone.js во внешнем интерфейсе .
Я не знаю, готов ли он к прайм-тайм, но, на мой взгляд, стоит создать доказательство концепции, если у вас есть что-то, что могло бы извлечь из этого пользу, и можете спроектировать сторону JS для интерфейса, а не для реализации , Это поможет изолировать любые изменения в бэкенде, если вы решите взять под залог Drupal по любой причине.
источник
Это может оказаться полезным: в нем показан пример преобразования скрипта на основе JQuery в магистральный скрипт. Очевидно, вам нужно будет загрузить backbone.js, либо как библиотеку, используя drupal_add_js, либо используя модуль.
https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/
источник