Pola untuk aplikasi web ajax-berat

12

Sampai sekarang, saya telah menjadi penggemar berat pola MVC untuk mengembangkan aplikasi web. Untuk web, saya telah mengembangkan sebagian besar dalam PHP (dengan kerangka kerja Kohana dan CodeIgniter) dan Ruby (RoR).

Ketika aplikasi saya menjadi lebih berat di sisi Ajax (aplikasi satu halaman dll) saya perhatikan bahwa saya tidak bisa tidak mengkhianati konsep dasar MVC: Javascript melakukan sebagian besar pekerjaan; memanggil pengontrol hanya untuk meminta tampilan atau lebih banyak kode js / json tampaknya salah.

Setelah berusaha keras untuk menjaga semua pekerjaan perutean di pengontrol, sekarang saya telah secara mendasar membaginya antara mereka dan Javascript (yaitu, dari PoV framework, bagian dari pandangan). Ketika meminta json subversi MVC terlihat lebih jelas: kode js yang melakukan permintaan adalah controller; controller framework hanya bertindak sebagai proxy untuk data model - apa yang sebenarnya saya minta.

Jadi, apa yang harus saya perhatikan?

Saya berpikir tentang aplikasi javascript murni, misalnya dengan backbone.js dan basis data, json-spitting basis data (couchDB) sebagai backend, tapi saya suka basis data relasional saya.

Pilihan lain adalah sebagai berikut: Saya hanya akan membuat "model yang diarahkan" di PHP / ruby ​​/ go / yang lainnya. Mereka akan menganalisis permintaan, menelepon db, memberikan kembali beberapa json.

Pendekatan ini terlihat menarik bagi saya tetapi tidak memiliki dokumentasi atau analisis akademis yang substansial, jadi saya agak takut dengan lompatan itu.

Ide ide?

cbrandolino
sumber
Anda ingin bermigrasi ke sesuatu seperti Socketstream . Yang dirancang untuk aplikasi real time, klien berat
Raynos
2
Jangan takut berubah. Database relasional memiliki tempatnya, tetapi jika proyek Anda tidak meminta database relasional, jangan gunakan itu.
beatgammit

Jawaban:

1

Jika tidak ada analisis akademik, lakukan sendiri. Percobaan saja pada proyek skala kecil Anda berikutnya, dan lihat bagaimana Anda menyukainya. Baca esai Paul Graham tentang mengapa ia memilih Lisp untuk startupnya, meskipun itu tidak umum digunakan. http://www.paulgraham.com/avg.html

Ada banyak kerangka kerja javascript MVC di luar sana. Jika Anda ingin membangun aplikasi javascript terutama, maka lakukanlah.

Hanya membangun API yang tenang di rel atau kerangka kerja apa pun yang Anda gunakan yang hanya merupakan pembungkus untuk basis data, dan Anda tidak harus melepaskan basis data relasional Anda. Panggil saja api seperti Anda akan memanggil database jika ini adalah aplikasi logika berbasis server.

Selain itu, jika Anda membangun aplikasi dengan cara ini, Anda dapat membangun dukungan offline dengan sangat mudah.

Seth Archer Brown
sumber
Saya akan mencoba ini untuk proyek saya berikutnya. Adapun kerangka kerja javascript, apa yang Anda sarankan? Satu-satunya yang saya perhatikan saat ini adalah backbone.
cbrandolino
Tulang belakang @cbrandolino terlihat bagus dari jumlah waktu terbatas yang harus saya mainkan. Anda mungkin ingin memeriksa sammyjs.org untuk proyek yang lebih kecil.
Seth Archer Brown