суббота, 5 марта 2011 г.

Grails Часть 1. Введение


   
       
       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 разработка, по-моему скринкаст очень качественно сделан.





2 комментария:

  1. Симпатичная статейка, но с небольшими отклонениями от правды. Spring - центральное место в схеме в первую очередь потому, что используется Spring'овый механизм DI, а Spring Security можно лишь подключить как плагин к Grails.
    GSP имеют поддержку своего пространства тегов(около 60) и связь с ruby лишь условна, т.к. функциональность перекрывается лишь частично.
    Пропущен очень важный момент - Grails избавляет программиста от большей части монотонной работы настройки компонентов системы(что в Spring'e делается через аннотации или xml), т.к. основан на соглашениях. Например, в этой статье дано грамотное определение моделей в grails, но для этого классы моделей должны быть помещены в каталог grails-app/domain. Если же поместить эти классы в src/groovy или src/java, то модели не будут сохраненны в базе данных. И таких соглашений очень много.

    ОтветитьУдалить
  2. Спасибо за коммент. Согласен про настройку компонентов, исправил некоторые неточности в посте.

    ОтветитьУдалить