Каковы преимущества Grails по сравнению с другими веб-платформами Java?

Я работал с JSF, Spring MVC и Struts, и я думаю, что получил хороший уровень в этих рамках. Недавно я слышал, что многие хорошие разработчики, с которыми я работал, изучают Grails и используют его в своих проектах.

Каковы практические преимущества Grails над другими платформами? Стоит ли изучать его, кроме того, я знаю другие рамки? Что все жужжит вокруг Grails, это только из-за Groovy?

ПРИМЕЧАНИЕ. Я провел исследование в SO, и единственный связанный с ним вопрос был , и Grails не упоминается

Ответ 1

Grails, как вы говорите, построен Groovy, что дает непосредственную выгоду от того, чтобы быть более продуктивным. Синтаксис Groovy намного более прост, чем Java, гораздо проще делать что-то в одной строке кода Groovy, что приведет вас к нескольким Java.

Grails специально предоставляет вам ряд преимуществ по сравнению с другими веб-фреймворками (я могу говорить только для Struts 1.x, 2.x и SpringMVC) - Grails фактически построен поверх SpringMVC, и вы можете интегрировать другие компоненты с помощью Spring.

  • Миграции и ведение баз данных - больше не приложение не синхронизируется с синдромом схемы базы данных. Большинство веб-приложений Java страдают от этого.

  • Artefacts - упрощает создание новых контроллеров и компонентов. Больше не создавайте контроллер, не настраивайте его и не помещайте в нужное место в своем веб-приложении. DOH! Леса также предоставляют вам все начальные компоненты, которые позволят вам начать создавать страницы и настраивать

  • Более простая проверка (более простая, чем Struts 1.x), например. username(size:6..10, blank:false) указывает два правила проверки правильности поля имени пользователя и не пустое. Это немного сложнее в других платформах веб-приложений Java.

  • Встроенный Webflow (через Spring webflow), который упрощает создание сложных рабочих процессов. Struts 2 может поддерживать Webflow, но через плагин, который немного странно, если я помню. Spring может тоже.

  • Перехватчики - SpringMVC также имеет эти.

  • Область Flash, см. http://grails.org/doc/docs/1.1/ref/Controllers/flash.html

  • Улучшение привязки данных - Struts 2 неплохо, намного лучше Struts 1. SpringMVC тоже хорош.

Там еще несколько, ознакомьтесь с документацией для более подробной информации: http://grails.org/doc/1.1.1/

Ответ 2

BTW, Grails не рассматривается как Java Framework, его для Groovy. Groovy имеет возможность работать с Java без проблем, но это другая история.

Да, его около Groovy, и, как и Java, он очень хорош. Groovy следует за понятием "Code less, do more", тогда как Java - это нечто вроде "Code more, do more". Не обижайтесь на Java-людей, я один из вас.

Возможно, вы захотите прочитать следующее:

Ответ 3

Grails добавляет Groovy к существующим фреймворкам Java и предоставляет инструментарий для его использования:

  • Grails (веб-часть) = Groovyfied Spring MVC (например, @Jon указывает)
  • GORM= Groovyfied Hibernate
  • GroovyTestCase = Groovyfied JUnit TestCase

@Уже упоминались некоторые конкретные практические преимущества. Я хотел бы отметить еще две фундаментальные концепции подхода Grails:

  • Контекстная конфигурация. Если вы придерживаетесь соглашений, изложенных Grails (которые очень разумны), вы можете стать продуктивными очень быстро.
  • Не повторяйте себя (DRY). Grails позволяет писать DRY-код и сам по себе является хорошим примером того, как быть DRY. Если у вас есть какой-либо существующий код Java, повторно использующий его в Grails, это не проблема.

Итак,

Стоит ли учиться?

Я думаю, что вы да. Поскольку вы уже знаете Java и некоторые из доступных фреймворков (особенно Spring MVC), кривая обучения не должна быть крутой вообще.

Что все жужжит вокруг Grails, это только из-за Groovy?

Объяснение может быть объяснено, потому что Grails демонстрирует, что Groovy можно использовать для создания очень полезного "продукта".