Використання такої основи, як Backbone [закрито]


24

На даний момент у мене є сторінка http://proctors.org/tv, яка керується кількома переглядами та вкладеними файлами з тоннами jQuery та злому разом спагетті JavaScript, і я хотів би її очистити. Я розумію, що нові рамки Javascript "MVC" використовують шаблони і не строго зберігають усі дані в DOM, як це можна зробити з jQuery.

Я вважаю, що ви використовуєте щось подібне до Служб та / або Переглядів в якості резервного, з магістраллю на передній частині.

Існує проект Do для Backbone , і я пам’ятаю, що там був DrugCon Denver, який є BoF або сесією ...

Я сподіваюся відкрити, чи варто свого часу спробувати переписати це в нові рамки чи просто почистити те, що я маю тут.


4
Яке саме питання? Якщо питання "Чи хтось використовує рамки Javascript, як Backbone або Ember з Drupal?" то це опитування, і як таке не вітається на сайтах Stack Exchange. Якщо у вас є конкретні запитання щодо використання однієї з цих фреймворків JavaScript, тоді задайте це питання.
kiamlaluno

2
Думаю, він запитує, чи існують якісь рамки JavaScript MVC, які можуть достатньо добре працювати з власною javascript-рамкою Drupal, щоб вони привели до меншої роботи, ніж просто прокат його власного. Мені здається справедливим - для одних речей інтиграція з Drupal іде дуже гладко, для інших - це так багато злому, що вам краще просто переписати це з нуля - і, здається, справедливо запитати людей, які вже пробували.
user56reinstatemonica8

Якщо ви хочете, щоб швидкий підручник отримав хребет + друпал до запуску, ви можете переглянути моє повідомлення в блозі pixelite.co.nz/article/…
masterchief

У цього хлопця є хороша відправна точка для хребта та Drupal pixelite.co.nz/article/…
Dan Walmsley

Ha цей хлопець @masterchief з однієї з відповідей вище
Ryan Price

Відповіді:


18

Я використовував і Ембер, і Хребну разом з Друпалом, але не так, як ви думаєте.

Ember і Backbone - це чудові інструменти для створення веб-додатків, але Drupal насправді не є хорошим інструментом, який можна використовувати разом з ними. Те, що ви хочете, коли ви створили веб-додаток, - це щось легке і швидке. Ви хочете, щоб це було швидко, щоб ви могли дати своїм користувачам відчуття, якщо негайний час відгуку. Ви хочете, щоб воно було легким, щоб воно було краще. Drupal не швидкий - повний завантажувальний засіб Drupal займає багато часу (порівняно з багатьма іншими варіантами), якщо все, що ви хочете зробити, - це забезпечити REST API для свого веб-програми. Drupal - це PHP, що також робить його голодним оперативною пам'яткою, обмежуючи кількість одночасних користувачів.

Тож якщо Drupal настільки поганий для цього, навіщо його використовувати?

Ви дійсно повинні використовувати Drupal для того, на що Drupal перевершує - CMS. Що я робив у минулому з проектами, для яких потрібен веб-додаток, - це використовувати Drupal для створення CMS навколо веб-програми. Створювати такі речі, як блоги, списки вмісту та подібні. Я також створив модулі для визначення деяких речей, таких як визначення схеми, та інших матеріалів, де було сенс використовувати Drupal - тому що це значно полегшило мою розробку.

Замість того, щоб використовувати Drupal для створення API REST, який потрібен webapp - я використовував Node.js для створення фактичного API REST та інших перевірок AJAX-дзвінків, які потрібно здійснити webapp. 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.org/project/nodejs або прокатуєте власний інтерфейс до БД Drupal?
mpdonadio

@googletorp, я працював з пасажиром phusion, і навіть вона не може працювати краще без кешування та оптимізації сервера, і всі мови скриптування на стороні сервера (крім js) мають достатню кількість проблем із блокуванням. Infact я сам перейшов з рубіну на php через певну підтримку продуктивності у спільноті з відкритим кодом та надзвичайну простоту використання. Nodejs завжди залишатиметься швидшим порівняно з іншими мовами.
Монетний двір

У будь-якому разі справа, оскільки Drupal надає приголомшливі рамки модулів послуг, я подумав, що ви можете поділитися деякими знаннями щодо обробки даних на стороні клієнта, особливо про передачу сеансів та інше.
Монетний двір

@Minty Є пакет допоміжних програм для інтеграції до Drupal в Nodejs: github.com/mikl/node-drupal Фактична обробка сеансу багато в чому залежить від того, як / що ви робите. CORS тощо, але я зазвичай надсилаю Drupal session_id або cookie, або в заголовок запиту.
googletorp

Я щойно прочитав цю дивовижну документацію на основу github.com/kjbekkelund/writings/blob/master/published/… і подумав, що магістральна людина - це чудовий спосіб організувати ваш JavaScript і використовувати його з зворотними зворотами AJAX через систему маршрутизації. Чому б не поєднати його з Drupal, оскільки Drupal покладається на ті ж характеристики маршрутизації?
AlxVallejo

6

Нещодавно я почав розробляти своє перше програмне забезпечення backbone + drupal і мені дуже подобається. Використання модуля Backbone разом із службами, переглядами служб та необхідними бібліотеками. Проект досить простий: створити карусель, керовану вмістом з 6 сторінок, на якій відображаються різні дані, а також додатковий слайдер News, який відображає різний вміст. Ця сторінка розташована на різних екранах без взаємодії з користувачем, тому потрібна можливість оновлювати вміст передньої частини, не оновлюючи браузер. Я вважав, що це ідеально вписується в додаток Drupal + Backbone, в якому Drupal керує вмістом і магістраллю, контролюючи та синхронізуючи з db. Я інтегрований у jquery.cycle 2, який має дивовижний API і добре вписується в стиль кодування MVC.

Я можу зрозуміти, чому люди можуть засунути нос при використанні Drupal як резервної системи, але для невеликого застосування, такого як Drupal , легко і швидко . Я домігся цього, почавши з мінімальної установки та ретельно вибираючи модулі contrib та core. Зараз у мене є близько 50 модулів з трохи менше 150 рядків спеціального JS-коду для основних речей, і я майже все зробив.

Врешті-решт я спробую зафіксувати це назад як приклад модуля магістральних систем, оскільки в даний час немає прикладу, який показує, як використовувати представлення даних як колекції тощо.

На закінчення:

Варто витратити свій час на це, якщо ваш проект добре відповідає. На мою думку, з проблемами продуктивності, спричиненими важкістю Drupal, можна легко боротися, використовуючи механізми кешування, такі як Varnish, або навіть кешування або кешування основних сторінок. Гнучкість та швидкість розвитку від використання Drupal повністю переважають негативи для мене.


5

Основна відповідь - так, деякі люди її використовують. Я сам не користувався цим (ще не знайшов хорошого збігу проектів), але наразі існує група Drupal для цього, і він також би вписувався в Веб-сервіс та основні контекстні ініціативи, що є однією з ініціатив Drupal 8. . Також є сесія на DrupalCon Munich 2012, Backbone.js у Frontend .

Я не знаю, чи він ще готовий до прайм-тайму, але, на мою думку, варто створити доказ концепції, якщо у вас є щось, що може отримати від цього користь, і ви можете спроектувати сторону JS до інтерфейсу, а не до реалізації . Це допоможе виокремити будь-які зміни, якщо ви вирішите скористатися програмою Drupal з будь-якої причини.


1
По суті: Stackexchange - неправильне запитання про це, оскільки це такий особливий випадок на даний момент. Пройдіться над груповою дискусією на тему gdo
paul-m

MPD дякує за посилання на групу. Я, мабуть, слідкую там. Я поцікавився у груп користувачів, що насправді залежить від того, хто там є. Ще намагаюся розібратися, коли мені слід почати запитання на Stack Exchange. Я вважав, що це буде більше, ніж одна правильна відповідь, тому це здавалося придатним.
Райан Ціна

3

Можливо, вам це стане в нагоді: він показує приклад перетворення сценарію, заснованого на JQuery, у сценарій магістралі. Очевидно, вам потрібно буде ввімкнути backbone.js, або як бібліотеку, використовуючи drupal_add_js, або використовуючи модуль.

https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/


Привіт Крейг, дякую за посилання, чи є у вас якийсь ресурс, де це використовується разом із Drupal? Спасибі
Меньті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.