Grails - достаточно новый фрэймоворк, в России в отрасли промышленного программирования он не очень сильно рапространен, в отличие от Java-based фреймворков. В этом цикле я хочу прежде всего для себя ответить на несколько вопросов: что это за зверь такой? почему мне стоит использовать именно его? какие принципиальные преимущества я получу?
Grails это Web фреймворк, с открытым исходным кодом, который позволяет увеличить продуктивность разработки Web приложений. Grails делает идею реальностью, за счет конвенций и готовых настроек он предоставляет готовый фундамент, который нуждается в минимальной кастомизации со стороны программиста.
Разработка ведется с помощью языка Groovy. Groovy высокоуровневый и полностью объектно-ориентированный язык программирования. Groove позволяет разработчику воплощать свои идеи в краткой и естественной для него форме, поэтому он легок для чтения и понимания. Java разработчики оценят его знакомый синтаксис и полную интеграцию, узнав, что они могут вызвать Java класс из Groovy класса и наоборот.
В основе Grails лежит классический шаблон - MVC, так что вам не составит труда начать разработку. Рассмотрим архитектуру фрэймворка:
Стоить отметить, что Grails - детище Spring Source, и в его основе лежат некоторые компоненты этой компании, которые разработаны на Java (центральный компонент на картинке, это Spring). Вообще говоря весь код, написанный на Groove транслируется в Java и запускается в рамках виртуальной машины(Java Virtual Machine), в качестве провайдера персистентности и БД умолчанию используется используется связка Hibernate + HSQLDB.
- Модель(Domains) - классы, содержащиеся в директории domains, говоря Java языком - все классы имеют аннотацию @Entity и отображаются в БД.
- Представление(GSPs) - Groovy Server Pages, аналог JSP с поддержкой тегов Ruby on Rails
- Контроллер(Controllers) - взаимодействует с спринг службами , а также координирует работу доменной области и представлений
В заключении скринкаст, с помощью которого можно преодолеть порог вхождения в Grails разработка, по-моему скринкаст очень качественно сделан.
Симпатичная статейка, но с небольшими отклонениями от правды. Spring - центральное место в схеме в первую очередь потому, что используется Spring'овый механизм DI, а Spring Security можно лишь подключить как плагин к Grails.
ОтветитьУдалитьGSP имеют поддержку своего пространства тегов(около 60) и связь с ruby лишь условна, т.к. функциональность перекрывается лишь частично.
Пропущен очень важный момент - Grails избавляет программиста от большей части монотонной работы настройки компонентов системы(что в Spring'e делается через аннотации или xml), т.к. основан на соглашениях. Например, в этой статье дано грамотное определение моделей в grails, но для этого классы моделей должны быть помещены в каталог grails-app/domain. Если же поместить эти классы в src/groovy или src/java, то модели не будут сохраненны в базе данных. И таких соглашений очень много.
Спасибо за коммент. Согласен про настройку компонентов, исправил некоторые неточности в посте.
ОтветитьУдалить