Каковы преимущества 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 можно использовать для создания очень полезного "продукта".