Saat ini ada beberapa pendekatan untuk membangun aplikasi web:
1. Sisi server saja
Ini adalah pendekatan klasik di mana Anda merender halaman di server dengan kerangka kerja web seperti Ruby on Rails, Django, Express, Play! Kerangka kerja dan lain-lain
Alur kerja umum : Bangun semua logika bisnis, model, dan tampilan templat di server dalam kerangka pilihan Anda.
2. API sisi-klien + REST
Relatif belum lama ini, komunitas web secara keseluruhan mulai membangun aplikasi sisi klien dalam Angular, Backbone, Ember, dan beberapa lusin kerangka kerja JavaScript MV * lainnya. Dan sekarang kami juga memiliki React.js bergabung dengan partai.
PEMBARUAN : Tidak ada kesalahpahaman. Yang saya maksudkan hanya dari sisi klien adalah pemisahan sepenuhnya dari kekhawatiran. Anda memiliki server REST API dan aplikasi sisi klien yang berbicara ke server itu. Tergantung pada kasus penggunaan Anda, kemungkinan besar, Anda tidak akan pernah memiliki aplikasi hanya sisi klien yang benar yang tidak terhubung ke back-end baik untuk otentikasi atau kegigihan data.
Alur kerja yang umum : Habiskan berjam-jam untuk memutuskan Angular vs Backbone vs Ember vs X. Kemudian Anda membangun rute, model, tampilan, pengontrol pada klien. Setelah selesai, sekarang buat model, pengontrol, rute di server. Dengan cara Anda melakukan jumlah pekerjaan ganda.
3. Hibrida
Saya tidak tahu banyak tentang menggunakan pendekatan ini, tetapi jika saya menebak, Anda membuat pandangan Anda (Lihat kerangka kerja MVC) di server. Hasilnya, Anda mendapatkan dukungan SEO plus pemuatan laman yang lebih cepat.
Di bagian depan Hybrid ada rendr airbnb yang konon menggabungkan backbone dan mengekspresikan bersama.
Eric Florenzo telah memposting di blognya hari ini: React: Akhirnya, tumpukan web server / klien yang hebat .
Jumlah cara untuk membangun aplikasi web sangat banyak. Dan bagi seseorang yang mempelajari pengembangan web, ini bisa menjadi masalah. Bagaimana seseorang memutuskan pendekatan mana yang digunakan untuk membangun aplikasi mereka selanjutnya?
sumber
Jawaban:
Saya pikir Anda benar-benar salah memahami "Hanya Sisi Klien".
Pertama harus diberi label "Client Centric". Seluruh kerangka kerangka kerja seperti Angular ini adalah bahwa bagian "VC" dari MVC diimplementasikan sepenuhnya di peramban dalam Javascript. Logika tingkat "M" yang lebih tinggi dari bagian "M" - Model - diimplementasikan di browser dan logika "CRUD" tingkat rendah diimplementasikan pada server.
Logika bisnis dikembangkan sekali. Logika tampilan dikembangkan sekali. Logika kontrol dikembangkan sekali - semuanya dalam kerangka Javascript pilihan. Logika akses data juga dikembangkan hanya sekali tetapi kali ini pada kerangka RESTy atau SOAPy apa pun yang Anda pilih di sisi server.
Dalam kasus ekstrem, Anda dapat menerapkan Model sepenuhnya di klien, jika dapat mengakses data hanya dari satu browser di satu mesin, dan, minta data dibuang setiap kali opsi "Hapus Cookies" dipilih.
sumber
Jawaban untuk pertanyaan itu tergantung pada persyaratan. Pandangan sekilas sekilas pada sejarah semacam pengembangan web menunjukkan budaya koboi di mana berbicara dengan para pemangku kepentingan, pelanggan, pengumpulan persyaratan, sering diabaikan.
Saya cukup beruntung untuk menghadiri ceramah beberapa tahun yang lalu di mana saya mendengar sesuatu yang benar-benar macet dengan saya: "Anda memilih desain untuk memenuhi persyaratan, bukan persyaratan untuk memenuhi desain". Jadi ketika dihadapkan dengan pertanyaan seperti ini, Anda perlu mencari tahu apa yang sebenarnya dibutuhkan oleh orang-orang yang meminta Anda untuk membangun perangkat lunak ini.
Tugas Anda adalah menjelaskan pro dan kontra di balik setiap pendekatan.
sumber
Saya pikir salah satu poin kunci dari pendekatan dan kerangka kerja yang lebih baru adalah bahwa ada lebih sedikit kopling antara teknologi ujung depan dan teknologi ujung belakang.
Idenya adalah bahwa Anda dapat menggunakan kerangka apa pun pada klien dan menarik data dan / atau tampilan dari sejumlah sumber terlepas dari kerangka sisi server.
Ini memungkinkan kita memilih alat terbaik untuk menyelesaikan pekerjaan dan pilihan kita dapat berkembang secara mandiri.
Memang, saya belum menggunakan Angular atau Backbone jadi saya tidak bisa membuat rekomendasi yang berpengalaman. Tumpukan basis saya saat ini terdiri dari mvc sisi server tertipis atau layanan yang dapat saya temukan. Sebagian besar mengirimkan template dan data. Data yang diberikan dan / atau data berikutnya diambil sisi klien menggunakan javascript, jquery, dan css biasa saja.
Saya mulai di sini dan membangunnya jika saya perlu. Manfaat dari pendekatan ini terbukti ketika Anda berpikir tentang mendukung beberapa platform klien - browser, ponsel, dll. Jika Anda memerlukan rendering khusus klien, Anda tidak perlu membuat perubahan besar-besaran di sisi server.
sumber