Відповіді:
IMO, найслабшою частиною Grails була відсутність функцій міграції моделі даних (ala Rails ActiveRecord міграції). Були кілька сторонніх плагінів різного рівня якості, але нічого офіційного.
Однак я щойно виявив, що Liquibase розширений і перетворився на плагін міграції баз даних, і це виглядає багатообіцяюче: http://www.grails.org/plugin/database-migration
З іншого боку, для всього, що я використовував Grails для (простих до середньо складних веб-додатків), це було переважно фантастично. Я б сказав, що я можу отримати приблизно 2–3-кратне підвищення продуктивності в розробці через стек MVC Java / Hibernate / Spring / Spring.
Проведення інтеграційних тестів було повільним, оскільки середовище грааль потребує часу для завантаження, і для запуску тесту потрібно лише частина цього часу. Це збільшить час обороту, коли ви розробляєте код, який записує на db. Іншу проблему Калеб уже згадував у своїй відповіді (про міграцію даних). Я також виявив, що кожного разу, коли я застряг, кількість форумів, на які я міг отримати допомогу, була обмежена порівняно з допомогою, доступною для сплячки та весни.
Нинішнім недоліком використання фреймворку є його нинішня погана інтеграція в систему збірки gradle. В даний час для цього використовується плагін, але сам плагін розривається з новими версіями граалів (як я нещодавно намагався використовувати і виправляти). Вони планують виправити цю проблему в майбутній версії, зробивши градієль частиною системи побудови граалів (замість gant), але відсутність системи складання, яку можна легко інтегрувати, є проблемою. Однак ця піщаність піде в майбутньому.
Ще однією підводним каменем є динамічний характер мови. Ви дійсно ОБОВ'ЯЗКОВЕ написати тести на все. Більшість помилок у вашому коді виявляються під час виконання. Це дійсно інший спосіб мислення про програму. Покладатися на компілятора, щоб знайти деякі ваші помилки, не відбувається з цією рамкою. Я не кажу, що це погано, це просто інше (і підводний камінь, якщо ти з ним не знайомий).
Мені подобаються цілі граалі / зернисті поняття, хоча я особисто використовував звичайну крупу більше, ніж грааль, я думаю, що вони обидва чудові.
Єдиний недолік (на мій особистий досвід) - погана підтримка IDE. Я подумав (досить оптимістично), що оскільки SpringSource мав чудовий збір Eclipse і був сильним прихильником Grails, що це буде шлях. Грозові плагіни важко встановити, доповнення коду є хитким (завжди проблема з динамічними мовами, але надання мені вибору 60 методів не так корисно), налагодження може бути втомливим, оскільки це часто вимагає проходження внутрішнього коду groovy, і, в останньому випуску встановлення groovy плагіна виводить з ладу Java-відладчик!
В даний час він має підтримку абстрактних класів. Наприклад, ви не можете прив’язати список реалізацій до одного List<T>
в командному об'єкті. Зрозуміло, це в першу чергу дратує, тому що я звик магічно зобов'язувати все інше! : D
Взагалі це все ще просто різновид "зеленого"; ви врешті-решт зіткнетеся з незначними обмеженнями та помилками. Це дійсно пройде довгий шлях через кілька років.