Какие преимущества у Grails перед другими веб-платформами Java? - PullRequest
11 голосов
/ 22 мая 2009

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

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

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

Ответы [ 3 ]

27 голосов
/ 22 мая 2009

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

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

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

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

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

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

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

  • Объем вспышки, см. http://grails.org/doc/docs/1.1/ref/Controllers/flash.html

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

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

11 голосов
/ 22 мая 2009

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

Да, речь идет о Groovy, и, как и Java, он потрясающе хорош. Groovy следует понятию «Кодируй меньше, делай больше», тогда как Java - что-то вроде «Кодируй больше, делай больше». Не в обиду Java, я один из вас.

Возможно, вы захотите прочитать это:

7 голосов
/ 22 мая 2009

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

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

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

  1. Соглашение по конфигурации . Если вы придерживаетесь соглашений, изложенных Grails (которые очень разумны, между прочим), вы можете стать продуктивными очень быстро.
  2. Не повторяйте себя (СУХОЙ) Grails позволяет вам писать СУХОЙ код и сам по себе является хорошим примером того, как быть СУХИМЫМ. Если у вас есть какой-либо существующий Java-код, его повторное использование в Grails не должно быть проблемой.

Итак,

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

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

Что за шум вокруг Грааля, только из-за Groovy?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...