Каковы некоторые из самых больших проблем / подводных камней при использовании платформы Grails? Сейчас я изучаю фреймворк, и он мне действительно нравится, но мне нужно знать, с какими основными проблемами я могу столкнуться при его использовании и как их избежать.
IMO, самой слабой частью Grails было отсутствие функциональности миграции модели данных (аля миграции Rails ActiveRecord). Были некоторые сторонние плагины разного уровня качества, но ничего официального.
С другой стороны, для всего, что я использовал для Grails (простые и умеренно сложные веб-приложения), это было в основном фантастически. Я бы сказал, что могу увеличить производительность разработки примерно в 2–3 раза по сравнению со стеком Java / Hibernate / Spring / Spring MVC.
+1. Я выбрал Grails для дальнейшей работы над плохо написанным приложением Struts 1. Единственная сложность для меня - делиться файлами cookie между двумя сервлетами. В противном случае это была полная победа.
Кевин Клайн
5
Выполнение интеграционных тестов было медленным, поскольку среда grails загружается, и для выполнения теста требуется только небольшая часть этого времени. Это увеличит время оборота при разработке кода, который пишет в базу данных. Другая проблема уже упоминалась Калебом в его ответе (о переносе данных). Я также обнаружил, что всякий раз, когда я застревал, количество форумов, на которые я мог получить помощь, было ограниченным по сравнению с помощью, доступной для спящего и весеннего периодов.
Запуск тестов: просто запустите их в интерактивном режиме - таким образом вы избежите запуска
rdmueller
3
форумы: мой опыт показывает, что я получаю ответ на все мои вопросы в течение 4 часов на Stackoverflow - в основном напрямую от
коммиттеров Grails
3
В настоящее время ловушкой использования фреймворка является его слабая интеграция в систему сборки gradle. В настоящее время он использует плагин для достижения этой цели, но сам плагин ломается с новыми версиями Grails (как я недавно пытался использовать и исправить). Они планируют решить эту проблему в будущей версии, сделав gradle частью системы сборки grails (вместо gant), но проблема в отсутствии системы сборки, которую вы можете легко интегрировать, является проблемой. Однако эта ловушка исчезнет в будущем.
Другая ловушка - динамическая природа языка. Вы действительно ДОЛЖНЫ написать тесты для всего. Большинство ошибок в вашем коде находятся во время выполнения. Это действительно другой способ мышления о программе. Опираясь на компилятор, чтобы найти некоторые из ваших ошибок не бывает с этим фреймворком. Я не говорю, что это плохо, это просто другое (и ловушка, если вы с ней не знакомы).
Мне нравится концепция цельного грааля / шпунта, хотя лично я использовал простой шпунт больше, чем грааля, я думаю, что они оба великолепны.
Единственный недостаток (по моему личному опыту) - плохая поддержка IDE. Я думал (довольно оптимистично), что, поскольку SpringSource имел отличную сборку Eclipse и были твердыми сторонниками Grails, это будет путь. Плагины Groovy сложны в установке, завершение кода нестабильно (всегда проблема с динамическими языками, но выбор из 60 методов не так уж полезен), отладка может быть утомительной, поскольку часто требует пошагового выполнения внутреннего кода groovy, и, В последнем выпуске установка Groovy плагин ломает отладчик Java!
В настоящее время он имеет слабую поддержку абстрактных классов. Например, вы не можете связать список реализаций в единый List<T>объект команды. Конечно, это в первую очередь раздражает, потому что я привык к тому, что магически связываю все остальное! : D
Как правило, это все еще просто "зеленый"; вы в конечном итоге сталкиваетесь со странными небольшими ограничениями и ошибками. Это действительно прошло долгий путь через несколько лет.
Выполнение интеграционных тестов было медленным, поскольку среда grails загружается, и для выполнения теста требуется только небольшая часть этого времени. Это увеличит время оборота при разработке кода, который пишет в базу данных. Другая проблема уже упоминалась Калебом в его ответе (о переносе данных). Я также обнаружил, что всякий раз, когда я застревал, количество форумов, на которые я мог получить помощь, было ограниченным по сравнению с помощью, доступной для спящего и весеннего периодов.
источник
В настоящее время ловушкой использования фреймворка является его слабая интеграция в систему сборки gradle. В настоящее время он использует плагин для достижения этой цели, но сам плагин ломается с новыми версиями Grails (как я недавно пытался использовать и исправить). Они планируют решить эту проблему в будущей версии, сделав gradle частью системы сборки grails (вместо gant), но проблема в отсутствии системы сборки, которую вы можете легко интегрировать, является проблемой. Однако эта ловушка исчезнет в будущем.
Другая ловушка - динамическая природа языка. Вы действительно ДОЛЖНЫ написать тесты для всего. Большинство ошибок в вашем коде находятся во время выполнения. Это действительно другой способ мышления о программе. Опираясь на компилятор, чтобы найти некоторые из ваших ошибок не бывает с этим фреймворком. Я не говорю, что это плохо, это просто другое (и ловушка, если вы с ней не знакомы).
источник
Мне нравится концепция цельного грааля / шпунта, хотя лично я использовал простой шпунт больше, чем грааля, я думаю, что они оба великолепны.
Единственный недостаток (по моему личному опыту) - плохая поддержка IDE. Я думал (довольно оптимистично), что, поскольку SpringSource имел отличную сборку Eclipse и были твердыми сторонниками Grails, это будет путь. Плагины Groovy сложны в установке, завершение кода нестабильно (всегда проблема с динамическими языками, но выбор из 60 методов не так уж полезен), отладка может быть утомительной, поскольку часто требует пошагового выполнения внутреннего кода groovy, и, В последнем выпуске установка Groovy плагин ломает отладчик Java!
источник
В настоящее время он имеет слабую поддержку абстрактных классов. Например, вы не можете связать список реализаций в единый
List<T>
объект команды. Конечно, это в первую очередь раздражает, потому что я привык к тому, что магически связываю все остальное! : DКак правило, это все еще просто "зеленый"; вы в конечном итоге сталкиваетесь со странными небольшими ограничениями и ошибками. Это действительно прошло долгий путь через несколько лет.
источник