Yanıtlar:
Grails'in en zayıf kısmı olan IMO, veri modeli taşıma işlevselliğinin olmamasıydı (ala Rails ActiveRecord geçişleri). Çeşitli kalite seviyelerinde bazı 3. taraf eklentileri vardı, ancak resmi bir şey yoktu.
Ancak, Liquibase'in genişletildiğini ve veritabanı geçiş eklentisine dönüştürüldüğünü keşfettim ve bu umut verici görünüyor: http://www.grails.org/plugin/database-migration
Artı tarafta, Grails'i kullandığım her şey için (basit ila orta derecede karmaşık web uygulamaları), çoğunlukla harika oldu. Java / Hibernate / Spring / Spring MVC yığını üzerinde geliştirme verimliliğinde kabaca 2x ila 3x artış elde edebileceğimi söyleyebilirim.
Grails ortamının yüklenmesi zaman aldığından ve testi çalıştırmak için bu sürenin sadece bir kısmının gerekli olması nedeniyle entegrasyon testlerinin yapılması yavaştır. Bu, db'ye yazan kod geliştirdiğinizde dönüş süresini artıracaktır. Diğer problem Kaleb tarafından yanıtında (veri göçü hakkında) zaten belirtilmiştir. Ayrıca, sıkıştığımda, yardım alabileceğim forumların sayısının hazırda bekletme ve bahar için mevcut yardımla karşılaştırıldığında sınırlı olduğunu buldum.
Çerçeveyi kullanmanın mevcut bir özelliği, kepçe inşa sistemine mevcut olan zayıf entegrasyonudur. Şu anda bunu gerçekleştirmek için bir eklenti kullanıyor, ancak eklentinin kendisi (yeni kullanmaya ve düzeltmeye çalıştığım gibi) yeni grails sürümleriyle kopuyor. Bu sorunu gelecekteki versiyonda grails build sisteminin (gant yerine) gradle bölümünü yaparak düzeltmeyi planlıyorlar, ancak kolayca entegre edebileceğiniz bir build sisteminin eksikliği bir sorundur. Ancak, bu tuzak gelecekte ortadan kalkacaktır.
Başka bir tuzak, dilin dinamik doğasıdır. Gerçekten her şey için testler yazmalısınız. Kodunuzdaki hataların çoğu çalışma zamanında bulunur. Bu gerçekten bir programı düşünmenin farklı bir yoludur. Bazı hatalarınızı bulmak için derleyiciye güvenmek bu çerçevede gerçekleşmez. Kötü olduğunu söylemiyorum, sadece farklı (ve aşina değilseniz bir tuzak).
Tam olarak grails / groovy konseptini seviyorum, ancak şahsen düz groovy'yi grails'ten daha çok kullandım, ancak ikisinin de muhteşem olduğunu düşünüyorum.
Sadece olumsuz (benim kişisel deneyim) IDE desteği kötü. SpringSource'un mükemmel bir Eclipse yapısına sahip olduğunu ve Grails'in güçlü destekçileri olduğunu ve bunun iyimser olduğunu düşündüm. Mükemmel eklentilerin kurulumu zordur, kod tamamlama kesintili (her zaman dinamik dillerle ilgili bir sorun ama bana 60 yöntem arasından seçim yapmak yararlı değil), hata ayıklama genellikle groovy'nin dahili kodundan geçmeyi gerektirdiğinden sıkıcı olabilir ve, en son sürümde harika eklentiyi yüklemek Java hata ayıklayıcısını bozuyor!
Şu anda soyut sınıflar için iffy desteği var. Örneğin, bir uygulama listesini List<T>
bir komut nesnesindeki tek bir dosyaya bağlayamazsınız . Verilmiş, bu öncelikle sinir bozucu çünkü ona sihirli bir şekilde her şeyi bağladım! : D
Genellikle hala bir tür "yeşil"; sonunda garip küçük sınırlamalar ve hatalar ile karşılaşırsınız. Birkaç yıl içinde gerçekten çok yol kat etti.