Omurga gibi bir çerçeve kullanma [kapalı]


24

Şu anda tonlarca jQuery ve hack-birlikte JavaScript spagetti ile birkaç görünüm ve ekler tarafından yönlendirilen bir http://proctors.org/tv sayfam var ve onu temizlemek istiyorum. Daha yeni Javascript "MVC" çerçevelerinin şablonlardan faydalandığını ve jQuery'de yapabileceğiniz gibi DOM'taki tüm verileri kesinlikle saklamıyorum.

Önünde Omurga ile Arka uç olarak Hizmetler ve / veya Görünümler gibi bir şey kullanacağınıza inanıyorum.

Omurga için bir Do projesi var ve bu konuda DrupalCon Denver'da bir Genel Müdürlük veya Oturum olduğunu hatırlıyorum ...

Bunu yeni bir çerçevede yeniden yazmayı denemek ve yeniden denemek için zamanımın değip değmeyeceğini veya burada olanları temizlemeyi umduğumu umuyorum.


4
Tam olarak soru nedir? Eğer soru "Herhangi biri Omurga veya Drupal ile Ember gibi Javascript çerçeveleri kullanan var mı?" o zaman bir ankettir ve bu nedenle Stack Exchange sitelerinde kabul edilmez. Bu JavaScript çerçevelerinden birini kullanmayla ilgili belirli bir sorunuz varsa, o soruyu sorun.
kiamlaluno

2
Drupal'ın kendi javascript çerçevesiyle yeterince iyi çalışabilecek bir MVC javascript çerçevesi olup olmadığını sorduğunu düşünüyorum. Bana göre adil gözüküyor - bazı şeyler için, Drupal ile iç içe geçmek güzelce sorunsuz ilerliyor, diğerleri için, sadece sıfırdan yeniden yazmak için daha iyi olacağınız kadar korsanlara ihtiyaç duyuyor - ve zaten denemiş olan insanlara sormak adil gözüküyor.
user56reinstatemonica8

Eğer bir koşu omurgasını + drupal almak için hızlı bir öğretici istiyorsanız blog yazımı
masterchief

Bu adam, omurga ve Drupal pixelite.co.nz/article/…
Dan Walmsley

Ha bu adam yukarıdaki cevaplardan birinden @ usta şefi
Ryan Price

Yanıtlar:


18

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 .


İlginç yaklaşım Drupal.org/project/nodejs kullanıyor musunuz veya kendi arayüzünüzü Drupal DB'ye mi taşıyorsunuz?
mpdonadio

@ googletorp, phusion yolcusu ile çalıştım ve önbellekleme ve sunucu optimizasyonu olmadan daha iyi performans gösteremiyor ve tüm sunucu tarafı kodlama dilleri (js hariç) oldukça fazla sayıda engelleme sorununa sahip. Infact, ben açık kaynak toplumdaki bazı özel performans desteği ve aşırı kullanım kolaylığı nedeniyle yakuttan php'ye geçti. Nodejs, diğer dillere göre her zaman daha hızlı kalacaktır.
Minty

Her neyse, Drupal harika servis modülü çerçevesi sağladığından, müşteri tarafında veri işleme konusunda bazı bilgileri paylaşabileceğinizi düşündüm, özellikle oturum ve işleri.
Minty

@Minty Nodejs'de Drupal ile entegrasyon için yardımcı bir paket var: github.com/mikl/node-drupal Gerçek oturum işleme, ne yaptığınıza / ne yaptığınıza bağlı olarak değişir. CORS vb., Ancak genellikle Drupal session_id'i bir çerez veya istek başlığında gönderirim.
googletorp

Bu harika Omurga belgelerini okudum github.com/kjbekkelund/writings/blob/master/published/… ve sanırım , erkek omurgası JavaScript'inizi organize etmek ve yönlendirme sistemi üzerinden AJAX geri aramalarıyla kullanmak için harika bir yol. Drupal aynı yönlendirme özelliklerine güvendiğinden, neden Drupal ile birleştirmiyorsunuz?
AlxVallejo

6

Kısa bir süre önce ilk omurga + drupal uygulamamı geliştirmeye başladım ve gerçekten keyif alıyorum. Kullanılması Omurga Hizmetleri, Hizmetler Görünümler ve gerekli kütüphaneleri ile birlikte modülü. Proje oldukça basittir: Çeşitli verileri gösteren 6 sayfalık içerik yönetilebilir bir karusel ile birlikte farklı içerikler gösteren ek bir Haber kaydırıcısı oluşturmak. Bu sayfa, kullanıcı etkileşimi olmadan çeşitli ekranlarda oturur, bu nedenle tarayıcıyı yenilemeden ön uç içeriğini güncelleme yeteneği gerekir. Bunun, Drupal'ın içeriği yöneten ve omurgayı kontrol edip db ile senkronize eden bir Drupal + Backbone uygulamasına mükemmel bir şekilde uyduğunu düşündüm. Harika bir API'ye sahip olan ve MVC kodlama stiline uygun olan jquery.cycle 2'ye entegre oldum .

İnsanların Drupal'ı arka uç çerçevesi olarak kullanmaya neden burnunu soktuğunu anlayabiliyorum ama bunun gibi küçük bir uygulama için hafif ve hızlı . Bunu minimal bir kurulumla başlayıp, katkı ve çekirdek modülleri dikkatlice toplayarak başardım. Şimdi omurga şeyler için 150 satırın altında özel JS kodu ile yaklaşık 50 modüldeyim ve hemen hemen bittim.

Sonunda bunu, Omurga modülüne örnek olarak göstermeye çalışacağım çünkü şu anda Görünümlerin koleksiyon olarak nasıl kullanılacağını gösteren hiçbir örnek yok.

Sonuç olarak:

Projeniz iyi uyuyorsa, buna bakmak için zaman ayırmaya değer. Benim düşünceme göre, Drupal'ın ağırlığından kaynaklanan performans sorunları, Varnish gibi önbellekleme mekanizmaları veya hatta artırma veya ana sayfa önbelleğe alma ile kolayca birleştirilebilir. Drupal'ı kullanmanın esnekliği ve gelişim hızı tamamen benim için olumsuzluklardan ağır basıyor.


5

Temel cevap evet, bazı insanlar kullanıyor. Kendim kullanmadım (henüz iyi bir proje eşleşmesi bulamadım), ancak şu anda bunun için bir Drupal grubu var ve aynı zamanda Drupal 8 Girişimlerinden biri olan Web Servisleri ve İçerik Çekirdek Girişimi ile de uyumlu olacak. . Ayrıca DrupalCon Munich 2012'de, Frontend'de Backbone.js'de bir oturum var .

Henüz asal zaman için hazır olup olmadığını bilmiyorum, ama bence faydalanabilecek bir şeyiniz varsa ve JS tarafını bir arabirim için tasarlayabilir, bir uygulama için tasarlayamazsınız. . Bu, herhangi bir nedenden ötürü, Drupal’dan kurtulmaya karar verirseniz, arka uç değişikliklerini izole etmenize yardımcı olur.


1
Esasen: Stackexchange bu konuda sorulması gereken yanlış bir yer çünkü bu noktada çok özel bir durum. Gdo üzerine grup tartışmasına doğru yürüyün
paul-m 19

MPD gruba bağlantı için teşekkür ederiz. Muhtemelen orada takip edeceğim. Kullanıcı gruplarında biraz soru sormuştum, ki bu gerçekten kim olduğuna bağlı. Yine de Stack Exchange'de bir soruyu ne zaman başlatmam gerektiğini çözmeye çalışıyorum. Bunun birden fazla doğru cevabı olacağını düşündüm, bu yüzden formda gibi görünüyordu.
Ryan Fiyatı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.