Hem Ember'i hem de Omurgasını Drupal ile birlikte kullandım - ama düşündüğün şekilde değil.
Ember ve Backbone, bir web uygulaması oluşturmak için iyi araçlardır - ancak Drupal, onlarla birlikte kullanılmak için gerçekten iyi bir araç değildir. Bir web uygulaması oluştururken arzuladığınız şey hafif ve hızlı bir şeydir. Anında yanıt verildiğinde kullanıcılarınıza duygu verebilmenin hızlı olmasını istersiniz. Ölçeğini iyileştirmek için hafif olmasını istersiniz. Drupal hızlı değil - Drupal'ın tam önyüklemesi, yapmak istediğiniz tek şey web uygulamanız için bir REST API sağlamaksa, uzun zaman alır (diğer birçok seçeneğe kıyasla). Drupal, aynı anda RAM sayısını eşzamanlı kullanıcı sayısını sınırlayan aç bırakan PHP'dir.
Drupal bunun için çok kötüyse neden kullanalım?
Bir DMS'yi Drupal'ın üstünlüğü için gerçekten kullanmalısınız - bir CMS. Geçmişte bir web uygulamasına ihtiyaç duyan projelerle yaptığım şey, Drupal'ı web uygulaması çevresinde CMS oluşturmak için kullanmaktır. Bloglar, içerik listeleri ve benzeri şeyler oluşturmak. Ayrıca bazı arka uç olayları - şema tanımları ve Drupal'ı kullanmanın anlamlı olduğu diğer şeyleri tanımlamak için modüller yarattım - çünkü gelişimimi çok kolaylaştırdı.
Webapp'ın ihtiyaç duyduğu REST API'sini oluşturmak için Drupal kullanmak yerine - gerçek REST API'sini oluşturmak için Node.js kullandım ve webapp'ın yapması gereken AJAX'in çağırdığı diğer kontrolleri yaptım. Node.js, sadece bu konuda üstün. Hızlı yanan (nesnelerin bir listesi için 30ms kadar düşük tepki süreleri). Sunucudaki JavaScript eşzamansız eylemler kullandığından, aynı zamanda çok hafiftir, bir Node.js sunucusu PHP'nin belki 100'ü işleyebildiği binlerce eşzamanlı kullanıcıyı idare edebilir. Buna ek olarak - Node.js JavaScript olduğundan, çok yeniden kullanabilirsiniz kod sunucusu ve müşteri tarafı. Hem istemci tarafında JavaScript'te hem de sunucu tarafında PHP'de uygulama yapmak yerine, aynı doğrulama kodunu yazabilirsiniz. Birkaç hafta içinde Münich'deki Drupal con'a gidiyorsanız - node.js sunumunu izlemeyi düşünmelisiniz.
Eğer bir geliştirici iseniz, benzer bir kurulum yapmanızı şiddetle tavsiye ediyorum ve sadece Drupal'ı gerçekten iyi olduğu şey için kullanın. Basit bir web uygulaması yapmak istiyorsanız ve çok fazla kullanıcı beklemiyorsanız, Drupal'ı bir arka uç olarak kullanmak geliştirme zamanınıza yardımcı oluyorsa bir seçenek olabilir.
Drupal 8 Güncellemesi
Drupal 8'in piyasaya sürülmesiyle, yukarıdakilerin bir kısmı hala doğrudur, ancak eskisi gibi aynı değildir. Drupal 8, Drupal 7 gibi değil, Node.js, Rails, Django vb. Gibi hafif bir araç değildir. JavaScript uygulamaları temel olarak çeşitli servisler kullandığından, Drupal'ın bunun için en iyi araç olup olmadığını düşünmelisiniz.
Drupal 8 ile birçok şey geliştirildi. Servisler çok daha doğal, Symphony'de istek / yanıtı kullanıyor. Drupal 8, gelişmiş önbellekleme ve mükemmel özelliklerin tümü ile birlikte birçok ilginç seçeneğe de sahiptir. Ancak Drupal 8'in tüm büyüklüğü ile bile, hafif uygulamalardan çok daha ağırdır. Drupal 8'in hızlı bir web servis sağlayıcısı olarak ne kadar başarılı kullanılabileceğini söylemek zor.
Yine de, tüm söylenen ve yapılanlarla birlikte, genel tavsiyem aynı kalıyor. Drupal geliştiricisi olmak, Drupal'ı her şey için kullanmak kolaydır, çünkü buna aşinayız. Güvenli hissediyor ve Drupal olabilir hemen her şey için kullanılabilir. Drupal'ı bir şey için kullanmak mümkün olsa da, bunun her şey için en iyi araç olduğu anlamına gelmez. Sağlıklı bir analiz yapmak ve bir BT projesinde kullanmak istediğiniz araçların güçlü ve zayıf yanlarını anlamak her zaman çok yardımcı olacaktır ve beklentilerinize cevap vermeyen bir sonuçla kilitlenmemiş bir pozisyonda kalmamanıza yardımcı olabilir .