Dalam beberapa bulan terakhir, saya mengenali kegembiraan besar tentang scripting sisi klien dalam pengembangan web. Tetapi sementara teknologi sisi server matang, stabil dan diterima dengan baik oleh pengembang backend, teknologi sisi klien tidak matang (yaitu dibandingkan dengan kerangka sisi server besar) dan tidak disukai oleh banyak pengembang lama. Namun demikian semua orang melakukan pengembangan sisi klien hari ini. Saya pribadi berharap kerangka besar sisi server menghilang dalam 2-5 tahun, melihat tren saat ini.
Kenapa begitu? Bagaimana mungkin sisi klien baru dan "menyebar" berkembang di HTML5 / JS mungkin lebih unggul daripada solusi sisi server yang besar dan dipikirkan dengan baik?
web-development
javascript
html5
web-framework
Bruno Schäpper
sumber
sumber
Jawaban:
Ini benar:
Tapi itu tidak terbatas pada sisi klien, itu adalah gerakan tumpukan penuh.
Saya tahu ini mungkin mengejutkan. Tolong, dengarkan aku.
Pertama-tama, keduanya dipikirkan dengan baik.
Kedua, Karena lebih baik.
Pertanyaan bagus.
Tetapi "lebih baik" bersifat subyektif, jadi jawaban untuk pertanyaan Anda adalah, apa yang lebih baik secara spesifik?
Kunjungi kembali pertanyaan:
Itu adalah fleksibilitas.
Sepertinya bukan masalah besar. Melakukannya? Fleksibilitas.
Maintabilitas. Kemungkinan diperpanjang. Skalabilitas. Modularitas. Kegunaan. UX.
Dan lebih cepat untuk diimplementasikan. Ini adalah kenyataannya. Lebih cepat dan lebih baik.
Ponsel pintar adalah adopsi media massa tercepat sejak TV pada 1950-an. Sekarang, kita tidak hanya memiliki smartphone - kita juga memiliki Tablet.
Sudah dalam pengembangan di Mozilla dan Windows OS yang akan berjalan di perangkat masa depan di pasar mereka -> HTML / JS.
Masih banyak solusi dan inovasi.
Tumpukan penuh JS muncul, berdasarkan fleksibilitas.
Saya harap itu membantu.
sumber
Kisah ini selalu memiliki dua sisi; kode sisi-server dan sisi-klien memiliki pro dan kontra.
Keuntungan dari skrip sisi klien meliputi:
Tetapi skrip sisi server memiliki banyak keuntungan juga:
Untuk aplikasi web yang sangat dinamis, pendekatan yang berpusat pada klien selalu menjadi pilihan populer, karena itu satu-satunya cara untuk memberikan pengalaman pengguna yang seperti desktop responsif yang layak: tanpa skrip sisi klien, setiap tindakan pengguna memerlukan putaran trip, yang berarti setidaknya setengah detik penundaan, biasanya lebih. Tetapi untuk situs informasi yang pada dasarnya hanya sekelompok halaman statis yang dilayani dari database (katakanlah, wikipedia), keuntungannya kecil, sedangkan manfaat skrip sisi server masih luar biasa.
Hype yang diamati berasal dari kombinasi dua perkembangan terakhir:
Faktanya, tidak ada yang berubah dalam hal apa yang baik pada pendekatan server-centric dan client-centric; apa yang telah berubah adalah bahwa klien-sentris sekarang lebih mudah dan lebih murah untuk dilakukan dan berkinerja lebih baik daripada beberapa tahun yang lalu, menjadikannya pilihan yang layak untuk banyak aplikasi daripada sebelumnya.
sumber
Sisi server akan selalu ada. Anda tidak bisa duduk di sisi klien untuk semuanya. Misalnya, Anda tidak ingin menggunakan desain MVC Backbone.js untuk mikro-controller Anda mengirimkan parameter secara real time dari overhead overhead crane produksi.
Jangan percaya hype.
sumber
Saya telah beralih pada tahun 2009 dari kerangka PHP sisi-server ke solusi ExtJS sisi-klien yang dikaitkan dengan layanan web sisi-server.
Alasan migrasi saya adalah:
Dengan pindah ke layanan web Anda memvalidasi input pada batas layanan web dan memiliki kontrol yang lebih tepat atas I / O server Anda. Tidak ada lapisan UI sisi server untuk mengacaukan arsitektur keamanan Anda.
- pergi server Arsitektur berubah sehingga pengambilan data lebih jarang terjadi dan data dapat di-cache secara lokal dengan rendering UI yang tidak memerlukan bolak-balik sama sekali. Roundtrips adalah apa yang mematikan kinerja aplikasi web.
UI yang dapat disimpan dalam cache . Lapisan UI dapat dihosting di CDN sepenuhnya. Saya bahkan membuat aplikasi web offline dengan memasukkan kode UI ke cache aplikasi HTML5.
Ini berarti lebih sedikit pengembangan, QA, dokumentasi, ...
Tapi, jangan salah, yang terjadi sekarang adalah hype. Ini akan reda dan banyak aplikasi web akan menggunakan arsitektur UI sisi-server lagi.
sumber
Faktor lain yang mendorong antusiasme untuk solusi sisi klien adalah pertumbuhan aplikasi seluler. Jika Anda membuat situs web berdasarkan pada JavaScript sisi klien dan AJAX, dan juga membangun aplikasi iOS dan Android asli, ada peluang bagus bahwa ketiganya dapat menggunakan layanan REST yang sama untuk melakukan semua data mereka ke sana-sini .
sumber
Pertama-tama, pengguna tidak melihat (dan kadang-kadang bahkan tidak peduli) apa yang bukan server. Tidak peduli seberapa baik kode sisi server ditulis, pengguna tidak akan menghargai aplikasi jika bagian klien tidak dilakukan dengan baik. Kadang-kadang bahkan UI yang bagus lebih penting daripada fungsi.
Server hosting yang besar dan kuat cukup mahal. Jauh lebih murah untuk mengimplementasikan beberapa logika (kecuali validasi) di sisi klien. Jadi Anda bisa menggunakan hosting server yang lebih kecil (karena itu, lebih murah), karena tidak akan dimuat sebanyak itu.
Ini adalah alasan bahwa, terlepas dari ketidakstabilan, teknologi dari sisi klien semakin populer. Selain itu, JS dan HTML / CSS didukung oleh (hampir) semua browser modern.
Dua bagian aplikasi ini tidak dapat ada secara terpisah. Dan Internet sepertinya tidak akan pergi ke mana pun dalam waktu dekat.
Saya juga tidak berpikir itu
big server-side frameworks
akan hilang. Akan selalu ada perusahaan yang mampu membelinya, dan akan menggunakan keuntungan signifikan mereka.sumber
Pengembangan web sisi klien sangat digabungkan dengan browser web dan perubahan di dalamnya dari waktu ke waktu. Solusi yang Anda berikan sekarang mungkin tidak berfungsi dalam beberapa bulan karena perubahan signifikan pada mesin rendering halaman browser web. Beberapa browser tidak kompatibel dengan standar dan oleh karena itu diperlukan upaya lebih dari para pengembang hanya untuk mencapai hasil yang diharapkan.
Ada beberapa solusi yang mencoba untuk memperbaiki masalah ini. Misalnya, jika Anda menggunakan jquery, Anda yakin skrip Anda akan berfungsi pada browser yang didukung oleh pustaka jquery khusus ini. Tetapi hanya tergantung penulisnya untuk memberikan Anda kompatibilitas dengan sebagian / sebagian besar / semua browser. Pertanyaannya adalah tim mana yang akan mendukung Anda dengan lebih baik. Apakah itu tim motool, tim jquery, tim lain? Jika mereka tidak memberikan dukungan ke browser web tertentu, proyek Anda mungkin tidak berfungsi di browser itu.
Kegembiraan yang tampaknya sudah ada sejak lama. Saya melihatnya ketika Shockwave dan penggantinya Flash diperkenalkan, ada "comeback besar" dari antarmuka pengguna yang kaya begitu pustaka js kompleks dikirimkan, pertama dengan motool, kemudian dengan jquery (saya mulai menggunakannya dalam urutan ini). Ada Flex dan JavaFX. Tapi tidak ada satu pun dari mereka yang bisa mendapat bagian besar di pasar. Beberapa memerlukan plugin yang pada waktunya sering mengekspos pengguna akhir terhadap kerentanan keamanan, yang lain mungkin tidak berfungsi di sisi klien karena beberapa pengaturan khusus (misalnya JavaScript dinonaktifkan di browser klien).
Di sisi lain, solusi sisi server biasanya ditulis hanya sekali. Anda tidak perlu khawatir bahwa semuanya akan gagal dan harus ditulis ulang begitu Firefox / Chrome / IE / Opera baru dikirimkan. Anda juga tidak perlu khawatir bahwa klien akan mencoba merusak aplikasi Anda dan / atau merusak data.
sumber
Sepenuhnya setuju dengan sentimen Anda. Saya juga percaya bahwa di luar apa yang Anda katakan, kita akan melihat penurunan dramatis dalam REST dan kenaikan besar-besaran di soket web untuk cara utama kita melihat situs berkomunikasi kembali ke server mereka. Vert.x, Node.js dll. Seluruh sisi server, serta sisi klien, pindah ke pemrograman yang digerakkan oleh peristiwa. Java EE, PHP, Rails, dll. Mereka semua perlu beradaptasi atau mereka akan kehilangan dengan sangat cepat.
sumber