Termasuk Baterai
Tooling Java
Ini luar biasa:
- IDE: walaupun beberapa IDE mendukung JavaScript, level dukungan tidak bisa dibandingkan. Cobalah untuk memperbaiki kode JavaScript pada basis kode besar (katakanlah, 40K + LOC) dan menangis.
- Unit-Testing: meskipun itu meningkat selama beberapa tahun terakhir, itu juga jauh lebih matang di dunia Jawa.
- Integrasi dan Inspeksi Berkesinambungan
- Generasi Dokumentasi: Tentu Anda memiliki JSDoc dan beberapa lainnya
Pengetikan statis
Ini menangkap bug lebih awal. (Alamat Google Penutupan yang sedikit sambil menjaga pengembang di dunia JavaScript, jika Anda suka).
JavaScript yang Dioptimalkan
GWT menulis JavaScript lebih cepat dan lebih ringkas daripada Anda (untuk aplikasi besar), dan memungkinkan Anda untuk menentukan apa yang dikirim ke klien dengan lebih mudah daripada dengan solusi JS penuh yang setara.
Arsitektur
Ini memberikan pemisahan keprihatinan yang baik untuk aplikasi besar, dengan arsitektur MVC atau MVP yang layak sudah disiapkan sebelumnya di ujung jari Anda.
Perpustakaan yang Layak
GWT menyediakan perpustakaan yang menarik, dan membuatnya mudah (yah, lebih mudah) untuk membangun aplikasi yang diaktifkan I18N dengan pemuatan bundel dinamis.
Unit-Testing
Menggunakan JUnit dari dalam Eclipse IDE dan dari command-line. Ini berhubungan dengan poin pertama saya. Anda juga bisa menggunakan beberapa alat bantu kualitas kode Java pada proyek GWT (untuk pemeriksaan sumber, bukan pemeriksaan bytecode, karena tidak ada).
Ini semua tentang kamu!!
GWT bukan untuk semua orang. Itu membuat beberapa orang lebih produktif dan memberikan alat yang baik untuk pengembang non-JS untuk membangun aplikasi web profesional dengan ujung depan yang dinamis tanpa menyentuh (terlalu banyak) JavaScript. Tetapi jika itu tidak berhasil untuk Anda, gunakan saja yang lain.
Jika Anda ingin sebagian besar di atas tetapi Anda tidak ingin Java, mungkin lihat Google Closure , atau Dojo Toolkit .
Adalah Ide Yang Baik Saat itu: Sejarah Penting !!
Dunia JavaScript (dan teknologi front-end web pada umumnya) sangat aktif akhir-akhir ini, jadi semuanya terlihat cerah. Tetapi hanya beberapa tahun yang lalu, keadaan tidak begitu cerah. KURANG / SASS tidak sepopuler itu, jQuery belum menjadi perpustakaan JS de-factory, perpustakaan JavaScript tidak muncul setiap minggu, dan tooling pada umumnya tidak terlalu bagus.
Tapi, sudah ada permintaan untuk aplikasi web profesional dan besar dengan front-end yang dinamis, sehingga ada celah untuk diisi untuk membuat pengembang lebih produktif. JavaScript memiliki banyak sekali jebakan dan keanehan yang perlu Anda waspadai, dan mungkin lebih baik tidak perlu mempedulikannya. Karenanya ceruk untuk alat seperti GWT.
Sejak itu, yang lain muncul (CoffeeScript muncul di benak, Dart sedang dalam perjalanan, tetapi juga kerangka kerja JavaScript yang besar, revolusi JS sisi server dengan Node.JS dan lainnya, dan kembalinya yang kuat untuk JavaScript sebagai "cukup baik" semua -bahasa yang akan digunakan tidak hanya di sisi klien tetapi juga di bagian lain dari tumpukan bisnis Anda.
catatan tambahan
Sehubungan dengan Pertanyaan Anda yang Asli (Sekarang Diedit) Tentang Penggunaan Firebug
Anda dapat men-debug kode GWT dengan Firebug tentu saja, tetapi idealnya Anda akan men-debug langsung dari debugger Eclipse IDE, yang sekarang menyediakan dukungan debug kode langsung.
Namun, Firebug masih dapat digunakan, meskipun Anda harus ingat bahwa GWT menghasilkan JavaScript yang dioptimalkan dan dikompresi, yang mungkin tidak mudah di-debug seperti apa adanya.
Berkenaan dengan Pertanyaan Asli (Sekarang Diedit) Tentang CSS
Ya, Anda masih perlu menulis kode CSS sendiri, tentu saja. Anda memasangkan proyek GWT Anda dengan alat lain (seperti SASS), lebih atau kurang mudah.
Ini Hanya Alat!
Jangan salah mengira GWT bukan apa-apa: Anda tidak menulis kode Java untuk dijalankan langsung di sisi klien sebagai bytecode Java. Anda menulis kode dalam bahasa Java, yang kemudian diterjemahkan ke JavaScript untuk efisiensi dan untuk memungkinkan Anda menggunakan bahasa tingkat yang lebih tinggi (atau, setidaknya, begitulah seharusnya dilihat).
Bisa dibilang , Java dan JavaScript dapat dianggap sebanding dalam hal tingkat abstraksi. Namun, Java hadir dengan beberapa keuntungan (dirinci di atas), karenanya keuntungan dalam menuai manfaat dari alat yang ada tanpa perlu menulis ulang. Pengembang Google baru saja memiliki ide cerdik untuk memungkinkan untuk menggunakan kembali alat berorientasi Java yang ada, tetapi pada dasarnya mengembangkan aplikasi JavaScript.
Selain itu, mereka memecahkan masalah lain, yang sering kali dikelola rumit dari aplikasi web dua bahasa di mana JavaScript dan kode Java diperlakukan secara terpisah. Penggunaan GWT memungkinkan tingkat konvergensi tertentu untuk kedua sisi proses pengembangan.
Bacaan lebih lanjut:
Setelah menghabiskan bertahun-tahun mengembangkan aplikasi web di GWT, menurut saya GWT memiliki kerugian yang sangat serius sehingga saya tidak akan pernah menggunakannya lagi jika saya tidak dipaksa.
Pohon DOM
Sementara kinerja JavaScript mungkin lebih baik, pohon DOM yang diberikan seringkali tidak perlu rumit. Misalnya, implementasi Tree menggunakan 13+ elemen DOM termasuk <tabel> untuk setiap item individual. Menggunakan pohon besar (sekitar 10.000 item) cukup membekukan browser. Pohon JavaScript / HTML / CSS murni dapat menangani jumlah item yang sama dengan mudah.
Pengembangan
Siklus modifikasi-coba sumber JavaScript / HTML / CSS murni tidak dapat dikalahkan. Anda cukup menyimpan file sumber Anda dan menyegarkan halaman di browser. Ini adalah faktor kunci dalam produktivitas dan GWT tidak dapat bersaing bahkan dengan menggunakan server kode.
Men-debug JavaScript sangat mudah dan menyenangkan dengan debugger Chrome atau Firebug.
Ahli Palu
Gagasan menggunakan Java untuk semuanya adalah untuk pengembang yang merupakan "ahli palu". Mereka adalah tuan dari palu mereka sehingga semuanya adalah paku. Saya pikir pendekatan ini sangat salah. Menggunakan GWT juga membutuhkan pengetahuan tentang CSS dan HTML. Tanpa ini, pengembang GWT sering menghadapi masalah yang mereka temukan hampir mustahil untuk dipecahkan, sementara seseorang dengan pengalaman HTML / CSS dapat menemukan solusi. Jika pengembang membutuhkan kompetensi ini, mereka bisa lebih mudah dengan mengembangkan dalam HTML.
Pendapat saya adalah bahwa sebagian besar keuntungan yang diberikan oleh GWT setidaknya dipertanyakan sementara kerugiannya jauh lebih serius dibandingkan dengan pengembangan dalam JavaScript / HTML / CSS murni.
sumber
Ini tidak terukur lebih baik.
Untuk penggunaan sehari-hari, pertimbangkan jQuery , AmpleSDK , atau polyfill html5 .
GWT memiliki banyak overhead: aktual dan konseptual.
Mungkin bermanfaat jika Anda memiliki aplikasi java atau beberapa kode java sisi server untuk port ke antarmuka web.
sumber
Beberapa manfaat menggunakan GWT yang saya pikirkan (detail lebih lanjut baca blog saya http://www.pandurangpatil.com/2012/09/penghasilan-of-menggunakan-gwt.html )
Karena aplikasi klien GWT ditulis dalam Java, seseorang mendapatkan kesempatan untuk menangkap kesalahan sintaksis pada waktu kompilasi karena hal yang sama (Meskipun tidak mendukung semua kelas JRE karena fitur-fitur tersebut tidak didukung oleh browser itu sendiri). Mari kita ambil contoh untuk memahami apa yang saya katakan. Jika Anda salah mengeja nama variabel JavaScript dengan menggunakan pustaka JavaScript murni. Satu-satunya cara Anda dapat menangkap kesalahan seperti itu adalah menjalankan aplikasi dan menguji untuk hasil yang diinginkan. Fitur Java seperti Generics dan Annotations digunakan penuh dan dapat digunakan dalam aplikasi Anda.
Satu dapat menggunakan perpustakaan yang ada yang ada atau menulis satu untuk menghasilkan kode sesuai kebutuhan dengan mudah karena kode yang perlu dihasilkan harus di Jawa. Kompiler GWT menangani kompilasi dan mengubahnya menjadi JavaScript.
Pengelolaan kode menjadi lebih mudah.
Seseorang dapat dengan mudah menulis beberapa logika bisnis umum sedemikian rupa sehingga dapat digunakan dalam kode sisi klien GWT dan juga pada kode sisi server seperti pada Java misalnya validasi data atau beberapa fungsi utilitas umum.
Dengan menggunakan plug-in GWT eclipse, Anda dapat dengan mudah men-debug kode klien di Jawa untuk logika bisnis Anda.
Saat kompiler GWT mengkompilasi kode Java klien Anda dan menghasilkan JavaScript darinya. Yang mana Anda perlu menyebarkannya ke server Anda, dan itu akan dilayani dan dieksekusi di browser pengguna ketika diminta. Saat menghasilkan JavaScript ini, ia akan melakukan beberapa optimasi.
Itu tidak mempertimbangkan kode mati saat menghasilkan JavaScript, ketika saya mengatakan kode mati saya bermaksud mengatakan "kode yang ada tetapi tidak dipanggil dari aliran utama". Pada gilirannya mengurangi ukuran efektif kode JavaScript akhir Anda.
Ini menangani mengacaukan kode JavaScript yang dihasilkan.
Itu melakukan minification dari kode JavaScript yang dihasilkan.
Dan yang lebih penting itu akan menghasilkan kode dioptimalkan spesifik browser secara terpisah. Ketika saya katakan secara terpisah, itu akan menghasilkan JavaScript terpisah khusus browser yang akan dilayani ketika permintaan masing-masing diterima dari browser yang diberikan. Yang pada gilirannya mengurangi ukuran kode JavaScript yang diunduh untuk browser tertentu karena tidak berisi semua penanganan khusus browser dalam satu kode tunggal.
Jika Anda menulis aplikasi Anda untuk berbagai bahasa yaitu Inggris, Hindi, Marathi dll dengan menggunakan fitur Internasionalisasi GWT. Saat menghasilkan kode JavaScript, ia menciptakan salinan per bahasa dan kombinasi browser. Yang membuat kode JavaScript yang dihasilkan untuk kombinasi bahasa dan browser yang diberikan paling optimal dan kecil.
Jika Anda perlu menggunakan JavaScript langsung yang dapat dipanggil dari kode Java GWT, Anda dapat melakukannya menggunakan JSNI (JavaScript Native Interface). Satu bahkan dapat memanggil Kode Java GWT kembali dari JavaSctipt.
Jika Anda ingin membuat halaman yang dapat Bookmark maka Anda dapat menggunakan fitur History dari GWT.
Jika Anda ingin menggunakan JSON sebagai format data untuk komunikasi dan manipulasi, JSON memiliki fitur yang sangat bagus yang disebut Tipe Hamparan JavaScript.
Fitur Binding Ditangguhkan dari GWT adalah fitur yang baik yang saya kira mungkin untuk diberikan karena Java.
Anda dapat membangun antarmuka pengguna menggunakan widget GWT yang tersedia dalam gaya Java Swing. Anda bahkan dapat membuat widget khusus dengan sangat mudah.
Jika Anda ingin membangun antarmuka pengguna (halaman Web) dalam gaya html murni, Anda dapat menggunakan fitur UI Deklaratif GWT. Yang saya rasakan salah satu fitur utama GWT. Yang membuatnya lebih mudah bagi pengembang untuk membangun halaman dengan gaya HTML murni. Yang saya kira lebih mudah dikelola daripada coding gaya Swing. Dan yang paling penting Anda masih dapat memiliki logika di Jawa dan hanya bagian presentasi dalam HTML murni. (Catatan: metode apa pun yang Anda gunakan (Declarative UI atau Swing Style) pada akhirnya hanya akan berupa HTML, tetapi yang membuat perbedaan adalah cara Anda membuat kode dan memeliharanya).
Fitur Bundle Klien dari GWT membuatnya sangat mudah untuk mengelola sumber daya web lainnya seperti css, gambar, dan konten teks lainnya.
Widget Sel: Untuk menyajikan pengumpulan data paginasi, GWT memiliki Widget Sel. Ada widget seperti CellTable, CellList, CellTree dan CellBrowser.
Komunikasi dengan server dari kode klien GWT. Ini mendukung berbagai cara untuk mengimplementasikan komunikasi server klien.
Jika Anda tidak khawatir tentang protokol yang digunakan untuk transfer data maka itu adalah mekanisme GWT RPC. Sangat mudah untuk mengintegrasikan kode sisi klien Anda untuk transfer data dengan server. Anda dapat menentukan kustom DTO (objek transfer data) dalam kode klien yang bahkan dapat digunakan pada kode sisi server. Implementasi sisi server menerima DTO yang sama sebagai parameter atau nilai pengembalian. Segala sesuatu yang lain diurus oleh bingkai kerja GWT RPC. Bahkan merambatkan pengecualian yang dimunculkan dari kode sisi server ke pemanggil dalam kode sisi klien (Asalkan Anda perlu mendefinisikan kelas-kelas Pengecualian di dalam paket kode sisi klien. GWT RPC secara internal menggunakan panggilan AJAX dengan protokol khusus mereka sendiri untuk transfer data.
Jika Anda tidak ingin menggunakan GWT RPC, Anda dapat membuat panggilan server AJAX untuk mengambil data dari server menggunakan Request Builder. Yang juga lebih mudah diimplementasikan. Ini juga memiliki fitur Permintaan Pabrik yang menarik. Dengan fitur ini Anda dapat membuat lapisan DAO atau Layanan Anda terpapar untuk dipanggil dari kode klien. Untuk melakukan itu, Anda perlu mendefinisikan beberapa set antarmuka untuk layanan dan tipe data khusus Anda. Dan menggunakan antarmuka ini, Anda dapat mengakses layanan tersebut dari kode klien. Saya telah menulis plugin pakar untuk menghasilkan antarmuka ini. Jika Anda memberi anotasi pada layer DAO Anda dengan beberapa rujukan penjelasan yang diperlukan ( https://github.com/pandurangpatil/gwt-mvn-helper) lihat modul mvn-helper-test di dalamnya untuk penggunaan. Request Factory lebih ditargetkan untuk berintegrasi dengan lapisan ORM seperti JDO atau JPA di server. Ini memiliki dukungan untuk memanggil tetap pada entitas yang diberikan dari kode klien. Dan yang paling penting ketika Anda memanggil metode bertahan itu menghitung dan hanya mengirim perubahan (delta) ke server untuk menyimpan.
Jika Anda ingin membuat panggilan JSONP lintas domain, Anda dapat melakukan rujukan yang sama.
sumber