Saya mencoba memahami lanskap berbagai pendekatan, dan praktik terbaik, seputar pengembangan JavaScript sisi-klien yang kompleks.
Saya tidak yakin apa yang memberi label pada kelas aplikasi ini, mungkin AJAX atau RIA yang berat (tetapi bukan plugin seperti Flash / Silverlight). Saya merujuk ke aplikasi web dengan karakteristik ini:
- Meniru UX desktop kaya / asli dalam JavaScript
- Berisi sebagian besar / semua perilaku di JS sisi klien, menggunakan server sebagai data-API (JSON / Html-Templates).
Ini berbeda dengan menggunakan server web untuk rendering UI, menghasilkan semua HTML dalam model refresh halaman.
Beberapa contoh adalah:
- Google Documents / Gmail
- Mindmeister
- Pelacak Penting
Saat kami bergerak maju ke HTML5, saya bisa melihat gaya pengembangan RIA ini, dengan JavaScript yang berat, menjadi semakin umum dan perlu untuk bersaing.
PERTANYAAN: Jadi apa pendekatan umum yang muncul di sekitar mengelola jenis pengembangan JS berat ini?
Kode sisi klien, ketika aplikasi tumbuh dalam fitur, sangat rumit. Ada masalah penskalaan upaya pengembangan lintas beberapa tim dengan JS mentah (atau begitulah yang saya dengar, dan bisa dipercaya).
Google telah mendekati masalah dengan membangun GWT yang mengkompilasi dari bahasa tingkat yang lebih tinggi (Jawa) ke JS, bersandar pada infrastruktur pembangunan yang ada yang dimiliki oleh bahasa tingkat yang lebih tinggi (Eclipse, pengetikan yang kuat, alat refactoring), bersama dengan mengabstraksi kompatibilitas browser dan masalah lain yang jauh dari pengembang.
Ada alat lain, seperti Skrip # untuk C # yang melakukan hal serupa. Semua ini menempatkan JS lebih banyak dalam peran IL (Bahasa Antara). yaitu. "Kamu tidak pernah benar-benar menulis dalam 'bahasa tingkat rendah' itu lagi."
Tapi ini 'kompilasi ke JS' bukan satu-satunya pendekatan. Tidak jelas bahwa GWT adalah pendekatan yang dominan ... atau memang akan menjadi seperti itu.
Apa yang dilakukan orang dengan JavaScript klien kaya? Beberapa pertanyaan yang berorientasi:
- Apakah sebagian besar toko membuat JS secara manual (di atas lib seperti jQuery et al)?
- Atau ada banyak pendekatan berbeda, tanpa praktik terbaik yang jelas muncul?
- Apakah sebagian besar toko menghindari pengembangan skala RIA yang mendukung model server-side / redraw page yang lebih sederhana untuk dikembangkan? Jika demikian, apakah ini akan bertahan?
- Apakah mengkompilasi ke JS mungkin merupakan tren masa depan yang muncul? Atau apakah ini salah arah?
- Bagaimana mereka mengelola kompleksitas dan refactoring JS klien?
- Modularisasi dan distribusi pekerjaan lintas tim?
- Aplikasi, penegakan, dan pengujian pola sisi klien seperti MVC / MVP dll.
Jadi, apa tren yang muncul di masa depan JavaScript-berat dan HTML5 kita ini?
Terima kasih!