Андрей Уваров
Разработка веб-приложений никогда не была занятием очень простым и
быстрым. И множество разработчиков по всему миру стараются как-то эту ситуацию
исправить. Но в то время как одни люди ищут, другие уже нашли свой путь.
«Нам не нужна серебряная пуля, когда мы уже нашли Священный Грааль», – говорят
разработчики Grails.
Grails (http://grails.org) – это фрэймворк,
предназначенный для разработки веб-приложений на языке Groovy. Данный фрэймворк
был написан Java-разработчиками для Java-разработчиков. GRAILS появился летом
2005 года, когда Graeme Keith Rocher, Steven Devijver и Guillaume Laforge
поняли, что устали от существующего процесса разработки веб-приложений, и
решили эту ситуацию как-то исправить. Как видно уже из названия, большое
влияние на него оказал Ruby On Rails, и потому у данных фрэймворков существует
очень много схожих черт. Тем, кто уже имеет опыт работы с Ruby On Rails или Pylons,
будет довольно просто разобраться в Grails.
Groovy (http://groovy.codehaus.org)
– объектно-ориентированный язык программирования с возможностью динамической
типизации. Разработан для платформы JVM (Java Virtual Machine). Таким образом в
Groovy можно использовать любой Java-код и наоборот. Авторы языка постарались
сделать его максимально понятным для Java-разработчиков, но при этом наделить
возможностями, которых нет в Java, как, например, динамической типизацией,
перегрузкой операторов и встроенным синтаксисом для работы с массивами,
списками и т. п.
Обычный подход
Попробуем разобраться, из-за чего могло возникнуть желание придумать новый
подход к процессу разрабтки веб-приложений.
Обычно веб-разработка на Java –
процесс весьма утомительный, а говорить о скорости вообще не приходится. Вот
только представьте себе, сколько действий необходимо сделать, чтобы добавить в
приложение новую страницу:
n Создать шаблон страницы. Шаблон в данном случае
есть представление.
n Создать DTO-класс (Data Transfer Object), на
самом деле это класс модели для MVC.
n Создать класс Assembler, который будет уметь
формировать из доменных объектов наш DTO-объект.
n Создать бизнес-фасад и его имплементацию (хотя
это не всегда необходимо). Бизнес-фасады являются объектами, выполняющими
сложную логику приложения, зачастую методы бизнес-фасадов выполняются
транзакционно.
n Создать DAO-интерфейс (Data Access Object) и
его имплементацию. DAO-объекты используются для работы с базой данных.
n Создать класс-контроллер, который будет
обрабатывать поступающие запросы, вызывать нужные методы нашего фасада и
собирать вместе модель и отображение (имеются в виду составляющие части MVC) и
возвращать результат.
n И все созданные классы сконфигурировать при
помощи Spring.
На самом деле данный процесс описывает общий
случай, и далеко не всегда нам нужны, например, DTO- или Assembler-классы.
Самым утомительным обычно является процесс конфигурации. Так как приходится
создавать много XML-кода, описывающего и инициализирующего наши объекты, а
также связи между ними.