Saat ini saya memiliki halaman http://proctors.org/tv yang didorong oleh beberapa tampilan dan lampiran dengan banyak jQuery dan spaghetti JavaScript yang diretas bersama, dan saya ingin membersihkannya. Saya mengerti bahwa kerangka kerja Javascript "MVC" yang lebih baru menggunakan templat, dan jangan secara ketat menyimpan semua data di DOM seperti yang mungkin Anda lakukan dengan jQuery.
Saya percaya Anda akan menggunakan sesuatu seperti Layanan dan / atau Tampilan sebagai backend, dengan Backbone di bagian depan.
Ada proyek Do untuk Backbone , dan saya ingat ada BoF atau Sesi di DrupalCon Denver tentang hal itu ...
Saya berharap untuk menemukan apakah ada baiknya saya mencoba dan menulis ulang ini dalam kerangka kerja baru atau hanya membersihkan apa yang saya miliki di sini.
sumber
Jawaban:
Saya telah menggunakan Ember dan Backbone bersama dengan Drupal - tetapi tidak dengan cara yang Anda pikirkan.
Ember dan Backbone sama-sama alat yang bagus untuk membuat aplikasi web - tetapi Drupal bukan alat yang baik untuk digunakan bersama mereka. Apa yang Anda inginkan ketika Anda membangun aplikasi web adalah sesuatu yang ringan dan cepat. Anda ingin menjadi cepat untuk dapat memberikan perasaan kepada pengguna Anda jika waktu respons segera. Anda ingin menjadi ringan untuk membuatnya lebih baik. Drupal tidak cepat - bootstrap Drupal lengkap membutuhkan waktu lama (dibandingkan dengan banyak opsi lain) jika semua yang ingin Anda lakukan adalah menyediakan REST API untuk aplikasi web Anda. Drupal adalah PHP, yang juga membuatnya cukup lapar karena membatasi jumlah pengguna secara bersamaan.
Jadi jika Drupal sangat buruk untuk ini mengapa menggunakannya?
Anda harus benar-benar menggunakan Drupal untuk keunggulan Drupal - sebuah CMS. Apa yang telah saya lakukan di masa lalu dengan proyek-proyek yang membutuhkan aplikasi web adalah menggunakan Drupal untuk membuat CMS di sekitar aplikasi web. Untuk membuat hal-hal seperti blog, daftar konten dan sejenisnya. Saya juga membuat modul untuk mendefinisikan beberapa hal backend - seperti definisi skema, dan hal-hal lain di mana masuk akal untuk menggunakan Drupal - karena itu membuat pengembangan saya jauh lebih mudah.
Alih-alih menggunakan Drupal untuk membuat API REST yang dibutuhkan webapp - saya menggunakan Node.js untuk membuat API REST yang sebenarnya dan cek AJAX lainnya yang disebut webapp perlu dibuat. Node.js unggul dalam melakukan hal ini. Ini sangat cepat (waktu respons serendah 30 ms untuk daftar objek). Ini juga sangat ringan, karena JavaScript di server menggunakan tindakan asinkron, server Node.js biasanya dapat menangani ribuan pengguna bersamaan di mana PHP dapat menangani mungkin 100. Selain itu - karena Node.js adalah JavaScript, Anda dapat menggunakan kembali banyak dari server kode dan sisi klien. Anda benar-benar dapat menulis kode validasi yang sama, daripada harus mengimplementasikan sisi klien dalam JavaScript dan sisi server dalam PHP. Jika Anda akan ke Drupal con di Münich dalam beberapa minggu - Anda harus mempertimbangkan menonton presentasi node.js.
Jadi jika Anda seorang pengembang, saya sangat merekomendasikan melakukan pengaturan yang sama, dan hanya menggunakan Drupal untuk apa yang benar-benar bagus. Jika Anda ingin membuat aplikasi web sederhana dan Anda tidak berharap banyak pengguna, menggunakan Drupal sebagai backend bisa menjadi pilihan jika itu membantu waktu pengembangan Anda.
Perbarui Drupal 8
Jadi dengan rilis Drupal 8 beberapa di atas masih berlaku tetapi tidak dalam perpanjangan yang sama seperti sebelumnya. Drupal 8 seperti Drupal 7 bukan alat yang ringan, seperti Node.js, Rails, Django dll. Karena aplikasi JavaScript umumnya mengkonsumsi berbagai layanan, Anda masih harus mempertimbangkan apakah Drupal adalah alat terbaik untuk ini.
Dengan Drupal 8 banyak hal telah diperbaiki. Layanan jauh lebih asli, dengan Symphony mengarahkan permintaan / tanggapan. Drupal 8 memiliki banyak kemungkinan menarik dengan caching canggih dan semua fitur hebat. Tetapi bahkan dengan semua kehebatan Drupal 8, masih jauh lebih berat daripada aplikasi ringan. Sulit untuk mengatakan seberapa sukses Drupal 8 dapat digunakan sebagai penyedia layanan web yang cepat.
Jadi tetap saja, dengan semua yang dikatakan dan dilakukan, rekomendasi umum saya tetap sama. Menjadi pengembang Drupal, mudah menggunakan Drupal untuk semuanya, karena kita sudah mengenalnya. Rasanya aman dan Drupal dapat digunakan untuk apa saja. Ingat, walaupun dimungkinkan untuk menggunakan Drupal untuk apa pun, itu tidak berarti bahwa itu adalah alat terbaik untuk semuanya. Melakukan analisis yang baik dan memahami kekuatan dan kelemahan alat yang ingin Anda gunakan pada proyek TI, akan selalu sangat membantu dan dapat membantu Anda menghindari berakhir pada posisi buntu dengan hasil yang tidak sesuai dengan harapan Anda .
sumber
Saya baru-baru ini mulai mengembangkan aplikasi backbone + drupal pertama saya dan saya benar-benar menikmatinya. Menggunakan modul Backbone bersama dengan Layanan, Tampilan Layanan, dan perpustakaan yang diperlukan. Proyek ini cukup sederhana: Untuk membuat korsel konten yang dapat dikelola yang terdiri dari 6 halaman yang menampilkan berbagai data, bersama dengan slider Berita tambahan yang menampilkan konten yang berbeda. Halaman ini duduk di berbagai layar tanpa interaksi pengguna sehingga diperlukan kemampuan untuk memperbarui konten ujung depan tanpa menyegarkan browser. Saya pikir ini sangat cocok dengan aplikasi Drupal + Backbone dengan Drupal mengelola konten dan backbone mengendalikan dan menyinkronkan dengan db. Saya terintegrasi dalam jquery.cycle 2 yang memiliki API luar biasa dan sangat cocok dengan gaya pengkodean MVC.
Saya bisa melihat mengapa orang-orang mungkin menggunakan Drupal sebagai kerangka kerja backend tetapi untuk aplikasi kecil seperti ini Drupal ringan dan cepat . Saya mencapai ini dengan memulai dengan pemasangan minimal dan dengan hati-hati memilih modul contrib dan inti. Saya sekarang di sekitar 50 modul dengan hanya di bawah 150 baris kode JS khusus untuk hal-hal backbone dan saya cukup banyak selesai.
Akhirnya saya akan mencoba mengkomit kembali ini sebagai contoh untuk modul backbone karena saat ini tidak ada contoh yang menunjukkan bagaimana menggunakan Views sebagai koleksi dll.
Kesimpulannya:
Layak waktu Anda untuk melihat ini jika proyek Anda cocok dengan baik. Menurut pendapat saya, masalah kinerja yang diturunkan dari Drupal dapat dengan mudah diperangi dengan menggunakan mekanisme caching seperti Varnish, atau bahkan peningkatan atau caching halaman inti. Fleksibilitas dan kecepatan pengembangan dari menggunakan Drupal benar-benar melebihi yang negatif bagi saya.
sumber
Jawaban dasarnya adalah ya, beberapa orang menggunakannya. Saya belum menggunakannya sendiri (belum menemukan kecocokan proyek yang bagus), tetapi saat ini ada grup Drupal untuk itu, dan itu juga cocok dengan Web Services dan Context Core Initiative yang merupakan salah satu dari Drupal 8 Initiatives . Ada juga sesi di DrupalCon Munich 2012, Backbone.js di Frontend .
Saya tidak tahu apakah ini sudah siap untuk prime time, tetapi menurut pendapat saya itu layak untuk membuat bukti konsep karena jika Anda memiliki sesuatu yang dapat mengambil manfaat dari itu, dan dapat mendesain sisi JS ke antarmuka dan bukan implementasi . Itu akan membantu mengisolasi setiap perubahan backend jika Anda memutuskan untuk memberi jaminan pada Drupal, untuk alasan apa pun.
sumber
Anda mungkin menemukan ini berguna: itu menunjukkan contoh mengkonversi skrip berbasis JQuery menjadi skrip backbone. Jelas Anda harus menarik backbone.js, baik sebagai perpustakaan menggunakan drupal_add_js atau menggunakan modul.
https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/
sumber