Подводные камни в Grails Framework [закрыто]


12

Каковы некоторые из самых больших проблем / подводных камней при использовании платформы Grails? Сейчас я изучаю фреймворк, и он мне действительно нравится, но мне нужно знать, с какими основными проблемами я могу столкнуться при его использовании и как их избежать.

Ответы:


13

IMO, самой слабой частью Grails было отсутствие функциональности миграции модели данных (аля миграции Rails ActiveRecord). Были некоторые сторонние плагины разного уровня качества, но ничего официального.

Однако я только что обнаружил, что Liquibase был расширен и превращен в плагин для переноса базы данных, и это выглядит многообещающе: http://www.grails.org/plugin/database-migration

С другой стороны, для всего, что я использовал для Grails (простые и умеренно сложные веб-приложения), это было в основном фантастически. Я бы сказал, что могу увеличить производительность разработки примерно в 2–3 раза по сравнению со стеком Java / Hibernate / Spring / Spring MVC.


1
+1. Я выбрал Grails для дальнейшей работы над плохо написанным приложением Struts 1. Единственная сложность для меня - делиться файлами cookie между двумя сервлетами. В противном случае это была полная победа.
Кевин Клайн

5

Выполнение интеграционных тестов было медленным, поскольку среда grails загружается, и для выполнения теста требуется только небольшая часть этого времени. Это увеличит время оборота при разработке кода, который пишет в базу данных. Другая проблема уже упоминалась Калебом в его ответе (о переносе данных). Я также обнаружил, что всякий раз, когда я застревал, количество форумов, на которые я мог получить помощь, было ограниченным по сравнению с помощью, доступной для спящего и весеннего периодов.


Запуск тестов: просто запустите их в интерактивном режиме - таким образом вы избежите запуска
rdmueller

3
форумы: мой опыт показывает, что я получаю ответ на все мои вопросы в течение 4 часов на Stackoverflow - в основном напрямую от
коммиттеров Grails

3

В настоящее время ловушкой использования фреймворка является его слабая интеграция в систему сборки gradle. В настоящее время он использует плагин для достижения этой цели, но сам плагин ломается с новыми версиями Grails (как я недавно пытался использовать и исправить). Они планируют решить эту проблему в будущей версии, сделав gradle частью системы сборки grails (вместо gant), но проблема в отсутствии системы сборки, которую вы можете легко интегрировать, является проблемой. Однако эта ловушка исчезнет в будущем.

Другая ловушка - динамическая природа языка. Вы действительно ДОЛЖНЫ написать тесты для всего. Большинство ошибок в вашем коде находятся во время выполнения. Это действительно другой способ мышления о программе. Опираясь на компилятор, чтобы найти некоторые из ваших ошибок не бывает с этим фреймворком. Я не говорю, что это плохо, это просто другое (и ловушка, если вы с ней не знакомы).


2

Мне нравится концепция цельного грааля / шпунта, хотя лично я использовал простой шпунт больше, чем грааля, я думаю, что они оба великолепны.

Единственный недостаток (по моему личному опыту) - плохая поддержка IDE. Я думал (довольно оптимистично), что, поскольку SpringSource имел отличную сборку Eclipse и были твердыми сторонниками Grails, это будет путь. Плагины Groovy сложны в установке, завершение кода нестабильно (всегда проблема с динамическими языками, но выбор из 60 методов не так уж полезен), отладка может быть утомительной, поскольку часто требует пошагового выполнения внутреннего кода groovy, и, В последнем выпуске установка Groovy плагин ломает отладчик Java!


0

В настоящее время он имеет слабую поддержку абстрактных классов. Например, вы не можете связать список реализаций в единый List<T>объект команды. Конечно, это в первую очередь раздражает, потому что я привык к тому, что магически связываю все остальное! : D

Как правило, это все еще просто "зеленый"; вы в конечном итоге сталкиваетесь со странными небольшими ограничениями и ошибками. Это действительно прошло долгий путь через несколько лет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.