Apa saja masalah / jebakan terbesar dengan menggunakan kerangka kerja Grails? Saya belajar kerangka kerja sekarang, dan saya sangat menyukainya, tetapi saya perlu tahu masalah besar apa yang mungkin saya temui saat menggunakannya dan bagaimana cara menghindarinya.
IMO, bagian terlemah dari Grails adalah kurangnya fungsionalitas migrasi model data (ala Rails ActiveRecord migrasi). Ada beberapa plugin pihak ketiga dengan berbagai tingkat kualitas, tetapi tidak ada yang resmi.
Namun, saya baru saja menemukan bahwa Liquibase telah diperluas dan berubah menjadi plugin migrasi basis data, dan itu terlihat menjanjikan: http://www.grails.org/plugin/database-migration
Di sisi positifnya, untuk semua yang saya gunakan untuk Grails (aplikasi web sederhana hingga sedang), sebagian besar fantastis. Saya akan mengatakan saya bisa mendapatkan peningkatan sekitar 2x hingga 3x dalam produktivitas pengembangan dibandingkan dengan tumpukan Java / Hibernate / Spring / Spring MVC.
+1. Saya memilih Grails untuk pekerjaan lebih lanjut pada aplikasi Struts 1 yang ditulis dengan buruk. Satu-satunya bagian yang sulit bagi saya adalah berbagi kue di dua servlet. Kalau tidak, itu adalah kemenangan total.
kevin cline
5
Menjalankan tes integrasi lambat karena lingkungan grails membutuhkan waktu untuk memuat dan hanya sebagian kecil dari waktu yang diperlukan untuk menjalankan tes. Ini akan meningkatkan waktu berbalik ketika Anda mengembangkan kode yang menulis ke db. Masalah lain telah disebutkan oleh Kaleb dalam jawabannya (tentang migrasi data). Saya juga menemukan bahwa setiap kali saya macet, tidak ada forum yang bisa saya peroleh bantuan terbatas jika dibandingkan dengan bantuan yang tersedia untuk hibernate dan spring.
Menjalankan tes: jalankan saja dalam mode interaktif - dengan cara ini Anda menghindari start up
rdmueller
3
forum: pengalaman saya adalah bahwa saya mendapatkan jawaban untuk semua pertanyaan saya dalam waktu 4 jam di Stackoverflow - sebagian besar langsung dari grails committers ...
rdmueller
3
Jebakan saat ini untuk menggunakan kerangka kerja adalah integrasi yang buruk saat ini ke dalam sistem pembangunan gradle. Saat ini menggunakan plugin untuk mencapai hal ini, tetapi plugin itu sendiri rusak dengan versi baru dari grails (seperti yang baru-baru ini saya coba gunakan dan perbaiki). Mereka berencana untuk memperbaiki masalah ini di versi masa depan dengan membuat gradle bagian dari sistem build grails (bukan gant), tetapi kurangnya sistem build yang dapat Anda integrasikan dengan mudah adalah masalah. Namun, perangkap ini akan hilang di masa depan.
Perangkap lain adalah sifat dinamis dari bahasa tersebut. Anda benar-benar HARUS menulis tes untuk semuanya. Sebagian besar kesalahan dalam kode Anda ditemukan saat runtime. Ini benar-benar cara berpikir yang berbeda tentang suatu program. Ketergantungan pada kompiler untuk menemukan beberapa kesalahan Anda tidak terjadi dengan kerangka kerja ini. Saya tidak mengatakan itu buruk, itu hanya berbeda (dan jebakan jika Anda tidak terbiasa dengan itu).
Saya suka konsep whole grails / groovy, walaupun saya pribadi telah menggunakan plain groovy lebih dari grails, saya pikir keduanya bagus.
Satu-satunya downside (dalam pengalaman pribadi saya) adalah dukungan IDE yang buruk. Saya berpikir (agak optimis) bahwa SpringSource memiliki bangunan Eclipse yang sangat baik dan merupakan pendukung kuat Grails bahwa ini akan menjadi jalan yang harus ditempuh. Plugin groovy sulit untuk diinstal, penyelesaian kode rapuh (selalu masalah dengan bahasa yang dinamis tetapi memberi saya pilihan 60 metode tidak membantu), debugging bisa membosankan karena sering memerlukan langkah-langkah melalui kode internal groovy, dan, dalam rilis terbaru menginstal plugin groovy merusak debugger Java!
Saat ini memiliki dukungan rapuh untuk kelas abstrak. Misalnya, Anda tidak dapat mengikat daftar implementasi menjadi satu List<T>di objek perintah. Memang, ini terutama menjengkelkan karena saya sudah terbiasa secara ajaib mengikat yang lainnya! : D
Secara umum itu masih semacam "hijau"; Anda akhirnya mengalami keterbatasan dan bug kecil yang aneh. Ini benar-benar datang jauh dalam beberapa tahun.
Menjalankan tes integrasi lambat karena lingkungan grails membutuhkan waktu untuk memuat dan hanya sebagian kecil dari waktu yang diperlukan untuk menjalankan tes. Ini akan meningkatkan waktu berbalik ketika Anda mengembangkan kode yang menulis ke db. Masalah lain telah disebutkan oleh Kaleb dalam jawabannya (tentang migrasi data). Saya juga menemukan bahwa setiap kali saya macet, tidak ada forum yang bisa saya peroleh bantuan terbatas jika dibandingkan dengan bantuan yang tersedia untuk hibernate dan spring.
sumber
Jebakan saat ini untuk menggunakan kerangka kerja adalah integrasi yang buruk saat ini ke dalam sistem pembangunan gradle. Saat ini menggunakan plugin untuk mencapai hal ini, tetapi plugin itu sendiri rusak dengan versi baru dari grails (seperti yang baru-baru ini saya coba gunakan dan perbaiki). Mereka berencana untuk memperbaiki masalah ini di versi masa depan dengan membuat gradle bagian dari sistem build grails (bukan gant), tetapi kurangnya sistem build yang dapat Anda integrasikan dengan mudah adalah masalah. Namun, perangkap ini akan hilang di masa depan.
Perangkap lain adalah sifat dinamis dari bahasa tersebut. Anda benar-benar HARUS menulis tes untuk semuanya. Sebagian besar kesalahan dalam kode Anda ditemukan saat runtime. Ini benar-benar cara berpikir yang berbeda tentang suatu program. Ketergantungan pada kompiler untuk menemukan beberapa kesalahan Anda tidak terjadi dengan kerangka kerja ini. Saya tidak mengatakan itu buruk, itu hanya berbeda (dan jebakan jika Anda tidak terbiasa dengan itu).
sumber
Saya suka konsep whole grails / groovy, walaupun saya pribadi telah menggunakan plain groovy lebih dari grails, saya pikir keduanya bagus.
Satu-satunya downside (dalam pengalaman pribadi saya) adalah dukungan IDE yang buruk. Saya berpikir (agak optimis) bahwa SpringSource memiliki bangunan Eclipse yang sangat baik dan merupakan pendukung kuat Grails bahwa ini akan menjadi jalan yang harus ditempuh. Plugin groovy sulit untuk diinstal, penyelesaian kode rapuh (selalu masalah dengan bahasa yang dinamis tetapi memberi saya pilihan 60 metode tidak membantu), debugging bisa membosankan karena sering memerlukan langkah-langkah melalui kode internal groovy, dan, dalam rilis terbaru menginstal plugin groovy merusak debugger Java!
sumber
Saat ini memiliki dukungan rapuh untuk kelas abstrak. Misalnya, Anda tidak dapat mengikat daftar implementasi menjadi satu
List<T>
di objek perintah. Memang, ini terutama menjengkelkan karena saya sudah terbiasa secara ajaib mengikat yang lainnya! : DSecara umum itu masih semacam "hijau"; Anda akhirnya mengalami keterbatasan dan bug kecil yang aneh. Ini benar-benar datang jauh dalam beberapa tahun.
sumber