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ń .