Menggunakan kerangka kerja seperti Backbone [ditutup]

24

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.

Ryan Price
sumber
4
Apa pertanyaannya, tepatnya? Jika pertanyaannya adalah "Apakah ada yang menggunakan kerangka kerja Javascript seperti Backbone atau Ember dengan Drupal?" maka itu adalah polling, dan karena itu tidak diterima di situs Stack Exchange. Jika Anda memiliki pertanyaan spesifik tentang menggunakan salah satu kerangka kerja JavaScript itu, maka ajukan pertanyaan itu.
kiamlaluno
2
Saya pikir dia bertanya apakah ada kerangka kerja javascript MVC yang dapat bekerja dengan cukup baik dengan kerangka javascript Drupal sendiri sehingga mereka akan menghasilkan lebih sedikit pekerjaan daripada hanya menggulirkan sendiri. Tampak adil bagi saya - untuk beberapa hal, berintegritas dengan Drupal berjalan sangat lancar, bagi yang lain, perlu banyak peretasan, Anda sebaiknya menulis ulang dari awal - dan tampaknya adil untuk bertanya kepada orang yang sudah mencoba.
user56reinstatemonica8
Jika Anda ingin tutorial cepat untuk mendapatkan backbone + menjalankan operasi Anda dapat memeriksa posting blog saya pixelite.co.nz/article/…
masterchief
Orang ini memiliki titik awal yang baik untuk backbone dan Drupal pixelite.co.nz/article/…
Dan Walmsley
Ha pria itu adalah @ masterchief dari salah satu jawaban di atas
Ryan Price

Jawaban:

18

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 .

googletorp
sumber
Pendekatan yang menarik. Apakah Anda menggunakan drupal.org/project/nodejs atau Anda memutar antarmuka sendiri ke Drupal DB?
mpdonadio
@googletorp, saya bekerja dengan penumpang phusion dan bahkan dia tidak dapat berkinerja lebih baik tanpa caching dan optimalisasi server dan semua bahasa skrip sisi server (kecuali js) memiliki masalah pemblokiran. Infact I sendiri beralih dari ruby ​​ke php karena beberapa dukungan kinerja khusus di komunitas open source dan sangat mudah digunakan. Nodejs akan selalu lebih cepat dibandingkan dengan bahasa lain.
Minty
Bagaimanapun intinya adalah, karena Drupal menyediakan kerangka kerja modul layanan yang mengagumkan, saya pikir Anda bisa berbagi pengetahuan tentang penanganan data di sisi klien, terutama menyerahkan sesi dan hal-hal lain.
Minty
@Minty Ada paket pembantu untuk diintegrasikan ke Drupal di Nodejs: github.com/mikl/node-drupal Penanganan sesi aktual sangat tergantung pada bagaimana / apa yang Anda lakukan. CORS dll, tapi saya biasanya mengirim Drupal session_id baik cookie atau di header permintaan.
googletorp
Saya baru saja membaca dokumentasi Backbone yang mengagumkan ini github.com/kjbekkelund/writings/blob/master/published/… dan berpikir, man backbone adalah cara yang bagus untuk mengatur JavaScript Anda dan menggunakannya dengan panggilan balik AJAX melalui sistem perutean. Mengapa tidak menggabungkannya dengan Drupal karena Drupal bergantung pada karakteristik perutean yang sama?
AlxVallejo
6

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.

tuan
sumber
5

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.

mpdonadio
sumber
1
Intinya: Stackexchange adalah tempat yang salah untuk bertanya tentang ini, karena ini adalah kasus khusus pada saat ini. Jelajahi diskusi kelompok tentang gdo
paul-m
Terima kasih GKG untuk tautan ke grup. Saya mungkin akan mengikuti di sana. Saya telah melakukan beberapa tanya di kelompok pengguna, yang benar-benar tergantung pada siapa yang ada di sana. Masih mencoba mencari tahu kapan saya harus memulai pertanyaan di Stack Exchange. Saya pikir ini akan memiliki lebih dari satu jawaban yang benar, jadi sepertinya cocok.
Harga Ryan
3

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/

Craig Moore
sumber
Halo Craig, terima kasih untuk tautannya, apakah Anda memiliki sumber daya khusus tempat ini digunakan dengan Drupal? Terima kasih
Minty