Obecnie mam stronę http://proctors.org/tv, która jest oparta na kilku odsłonach i załącznikach z mnóstwem jQuery i zhakowanego spaghetti JavaScript, i chciałbym to wyczyścić. Rozumiem, że nowsze frameworki JavaScriptu „MVC” korzystają z szablonów i nie przechowują ściśle wszystkich danych w DOM, tak jak w przypadku jQuery.
Wierzę, że jako zaplecza użyłbyś czegoś takiego jak Usługi i / lub Widoki, z Szkieletem z przodu.
Istnieje projekt Do dla Backbone i pamiętam, że w DrupalCon Denver odbyła się sesja BoF lub sesja ...
Mam nadzieję dowiedzieć się, czy warto poświęcić czas na przepisanie tego w nowym środowisku, czy po prostu posprzątać to, co tu mam.
javascript
Ryan Price
źródło
źródło
Odpowiedzi:
Użyłem zarówno Embera, jak i Kręgosłupa wraz z Drupalem - ale nie w taki sposób, jak myślisz.
Ember i Backbone są świetnymi narzędziami do tworzenia aplikacji internetowych - ale Drupal nie jest tak naprawdę dobrym narzędziem, z którego można ich używać. Podczas tworzenia aplikacji internetowej pragniesz czegoś lekkiego i szybkiego. Chcesz, aby był szybki, aby dać użytkownikom poczucie natychmiastowego czasu reakcji. Chcesz, aby był lekki, aby lepiej skalować. Drupal nie jest szybki - pełny bootstrap Drupal zajmuje dużo czasu (w porównaniu z wieloma innymi opcjami), jeśli wszystko, co chcesz zrobić, to zapewnić interfejs API REST dla swojej aplikacji internetowej. Drupal to PHP, co sprawia, że jest dość wymagający od pamięci RAM, ograniczając liczbę jednoczesnych użytkowników.
Więc jeśli Drupal jest taki zły, po co go używać?
Powinieneś naprawdę użyć Drupala do tego, co wyróżnia Drupala - CMS. To, co robiłem w przeszłości z projektami, które wymagały aplikacji internetowej, to użycie Drupala do stworzenia CMS wokół aplikacji internetowej. Do tworzenia takich rzeczy jak blogi, listy treści i polubienia. Stworzyłem również moduły do zdefiniowania niektórych elementów zaplecza - takich jak definicje schematów i innych rzeczy, w których użycie Drupala miało sens - ponieważ znacznie ułatwiło mi to rozwój.
Zamiast używać Drupala do tworzenia interfejsu API REST, którego potrzebowała aplikacja internetowa - użyłem Node.js do utworzenia rzeczywistego interfejsu API REST i innych kontroli wywołań AJAX wymaganych przez aplikację. Node.js wyróżnia się tym właśnie. Jest niesamowicie szybki (czasy odpowiedzi już 30 ms dla listy obiektów). Jest również bardzo lekki, ponieważ JavaScript na serwerze używa akcji asynchronicznych, serwer Node.js zwykle może obsłużyć tysiące równoczesnych użytkowników, przy czym PHP może obsłużyć może 100. Ponadto - ponieważ Node.js to JavaScript, możesz wiele ponownie użyć po stronie serwera kodu i po stronie klienta. Możesz dosłownie napisać ten sam kod weryfikacyjny, zamiast konieczności implementacji zarówno po stronie klienta w JavaScript, jak i po stronie serwera w PHP. Jeśli wybierasz się na Drupal con w Münich za kilka tygodni - powinieneś rozważyć obejrzenie prezentacji node.js.
Więc jeśli jesteś programistą, zdecydowanie polecam wykonanie podobnej konfiguracji i używaj Drupala tylko do tego, w czym jest naprawdę dobry. Jeśli chcesz stworzyć prostą aplikację internetową i nie spodziewasz się dużej liczby użytkowników, użycie Drupala jako backendu może być opcją, jeśli pomoże ci to w rozwoju.
Zaktualizuj Drupal 8
Tak więc wraz z wydaniem Drupala 8 niektóre z powyższych nadal są prawdziwe, ale nie w takim samym zakresie, jak wcześniej. Drupal 8 jest jak Drupal 7, a nie lekkie narzędzie, takie jak Node.js, Rails, Django itp. Ponieważ aplikacje JavaScript korzystają głównie z różnych usług, powinieneś rozważyć, czy Drupal jest najlepszym narzędziem do tego.
Dzięki Drupal 8 wiele rzeczy zostało ulepszonych. Usługi są znacznie bardziej natywne, a Symphony steruje żądaniem / odpowiedzią. Drupal 8 ma wiele interesujących możliwości dzięki zaawansowanemu buforowaniu i wszystkim wspaniałym funkcjom. Ale nawet pomimo całej świetności Drupala 8, wciąż jest o wiele cięższy niż lekkie aplikacje. Trudno powiedzieć, jak udanego Drupala 8 można użyć jako szybkiego dostawcy usług internetowych.
Mimo to, mimo że wszystko zostało powiedziane i zrobione, moje ogólne zalecenie pozostaje takie samo. Będąc programistą Drupal, łatwo jest używać Drupala do wszystkiego, ponieważ jesteśmy z nim zaznajomieni. Czuje się bezpiecznie, a Drupala można używać do wszystkiego. Pamiętaj, że chociaż można używać Drupala do wszystkiego, nie oznacza to, że jest to najlepsze narzędzie do wszystkiego. Przeprowadzenie rzetelnej analizy i zrozumienie mocnych i słabych stron narzędzi, których chcesz używać w projekcie IT, zawsze będzie bardzo pomocne i pomoże uniknąć sytuacji, w której znajdziesz się w impasie z wynikiem, który nie spełni Twoich oczekiwań .
źródło
Niedawno zacząłem rozwijać moją pierwszą aplikację szkieletową + drupal i bardzo mi się to podoba. Korzystanie z modułu Backbone wraz z usługami, widokami usług i wymaganymi bibliotekami. Projekt jest dość prosty: stworzyć karuzelę zarządzającą treścią złożoną z 6 stron, na której wyświetlane są różne dane, wraz z dodatkowym suwakiem Wiadomości, wyświetlającym różne treści. Ta strona jest wyświetlana na różnych ekranach bez interakcji użytkownika, dlatego wymagała możliwości aktualizacji treści interfejsu użytkownika bez odświeżania przeglądarki. Pomyślałem, że idealnie pasuje do aplikacji Drupal + Backbone, a Drupal zarządza treścią, kontroluje szkielet i synchronizuje go z db. Zintegrowałem z jquery.cycle 2, który ma niesamowite API i dobrze pasuje do stylu kodowania MVC.
Rozumiem, dlaczego ludzie mogą trzymać się nosa, gdy używają Drupala jako frameworka, ale w przypadku takiej małej aplikacji Drupal jest lekki i szybki . Osiągnąłem to, zaczynając od minimalnej instalacji i ostrożnie wybierając moduły contrib i core. Mam teraz około 50 modułów z prawie 150 liniami niestandardowego kodu JS dla szkieletu i jestem prawie gotowy.
W końcu spróbuję przekazać to z powrotem jako przykład do modułu szkieletowego, ponieważ obecnie nie ma żadnego przykładu, który pokazuje, jak używać widoków jako kolekcji itp.
Podsumowując:
Warto poświęcić temu czas, aby sprawdzić, czy Twój projekt dobrze pasuje. Moim zdaniem problemy z wydajnością wynikające z ciężkości Drupala można łatwo zwalczać, stosując mechanizmy buforowania, takie jak Varnish, a nawet przyspieszanie lub buforowanie strony głównej. Elastyczność i szybkość rozwoju z wykorzystaniem Drupala całkowicie przeważają dla mnie negatywne.
źródło
Podstawowa odpowiedź brzmi: tak, niektóre osoby go używają. Nie korzystałem z niego osobiście (nie znalazłem jeszcze dobrego projektu), ale obecnie istnieje dla niego grupa Drupal , a także pasuje do Web Services i Context Core Initiative, która jest jedną z inicjatyw Drupal 8 . Istnieje również sesja na DrupalCon Monachium 2012, Backbone.js w Frontend .
Nie wiem, czy jest jeszcze gotowy na najwyższy czas, ale moim zdaniem warto stworzyć dowód koncepcji, jeśli masz coś, co mogłoby z niego skorzystać, i może zaprojektować stronę JS interfejsu, a nie implementację . Pomogłoby to wyodrębnić wszelkie zmiany backendu, gdybyś zdecydował się zapłacić kaucję Drupalowi, z jakiegokolwiek powodu.
źródło
Może się to przydać: pokazuje przykład konwersji skryptu opartego na JQuery na skrypt szkieletowy. Oczywiście będziesz musiał pobrać backbone.js, albo jako bibliotekę za pomocą drupal_add_js lub za pomocą modułu.
https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/
źródło