Esse artigo faz parte da revista Java Magazine edição 59. Clique aqui para ler todos os artigos desta edição

AN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: red; FONT-FAMILY: Verdana; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">

nt-weight: normal">De que se trata o artigo:

Criado em 2006, o Grails é um recurso de desenvolvimento ágil usado de maneira mais ampla na Inglaterra e na Alemanha e que hoje tem se tornado um dos temas que despertam curiosidade nas comunidades brasileiras de Java. Aos poucos este framework vai ganhando mais adeptos no país por ser uma ferramenta que oferece velocidade na programação de aplicações para Web.

 

Para que serve:

Lidar com o Grails serve como diferencial para elaborar desde projetos complexos aos mais simples. E significa também estar integrado a uma tendência de mercado cuja exigência é de alta capacidade de dinamismo. O uso do Grails como solução faz com que o programador possa otimizar seu tempo e distribuí-lo melhor em tarefas qualitativas. 


Em que situação o tema é útil:

 Por ser uma ferramenta de alta produtividade que prima por uma linguagem mais enxuta, aprender a trabalhar com o Grails representa uma vantagem competitiva no momento de oferecer ao cliente soluções e prazos. Sua grande utilidade é a de ditar ao trabalho um ritmo que supera os recursos tradicionais, justamente por ter códigos mais integrados e inteligíveis.

 

Grails: mais inspiração, menos transpiração – Resumo DevMan:

O conjunto de facilitadores que compõe o Grails torna o cotidiano dos desenvolvedores menos sacrificado no que diz respeito ao desgaste com complexidade de detalhes e codificações. Para detalhar melhor seu uso, este artigo traz um demonstrativo prático com a criação de um blog construído com emprego da ferramenta.

 

O Grails é uma ferramenta da era do desenvolvimento ágil e faz parte de uma nova geração de frameworks MVC para linguagens dinâmicas, como o Rails (do Ruby) ou o Django (do Python). Os “agilistas” trazem mandamentos curiosos de filosofia de programação, como KISS - Keep It Simple, Stupid! (mantenha simples, estúpido!), DRY - Don’t Repeat Yourself (não se repita), You Ain’t Gonna Need It (você não vai precisar disso) ou Build Less (desenvolva menos), entre muitos outros que pregam um modelo de trabalho com menos transpiração e mais inspiração.

O Grails é uma mistura de tecnologias integradas que utiliza como seu principal agente o Groovy, linguagem de scripting e dinamicamente tipada, orientada a objetos, que roda de forma nativa na JVM. Uma das maiores vantagens do Grails é a convenção por configuração (troca da configuração explícita, ex.: via código ou descritores, por convenções).

O Grails imprime um jeito simples de programar e faz com que o profissional esteja mais livre para se dedicar às regras de negócio. Tudo leva a crer que este não seja apenas mais um concorrente no espaço já bastante saturado de frameworks web para Java.

Mas qual é a diferença entre o Grails e um framework MVC qualquer?

De um modo geral grande parte dos sistemas desenvolvidos para web precisa efetuar conexão com banco de dados, utilizar um container IOC para injeção de dependências, fazer uso de taglibs na camada de visualização, configurar o mapeamento objeto-relacional e ter um controlador para o MVC. E existe um framework específico para cada situação destas: Hibernate para conexão com banco de dados e Mapeamento Objeto-Relacional, o Spring para MVC e IOC, SiteMesh para definição de layouts e alguma biblioteca para as taglibs.

Com o Grails a integração desses frameworks é feita de forma transparente, evitando configurações desde a edição de arquivos XML até a criação de estruturas de diretórios (isso para cada framework!).

No decorrer deste artigo serão visualizadas as vantagens de trabalhar com essa ferramenta. O objetivo final é criar uma pequena aplicação web, um blog, permitindo a criação de posts e comentários. Tudo será visto no passo a passo a seguir.

Arquitetando o Framework

O Grails é composto por tecnologias open source já conhecidas no mercado, como o Hibernate, o Spring e o SiteMesh. Para facilitar ainda mais o desenvolvimento, como padrão, o servidor web Jetty já vem configurado para qualquer aplicação, além do HSQLDB, um banco de dados totalmente escrito em Java. O Grails abstrai toda a complexidade necessária para manter essa infra-estrutura, focando no desenvolvimento ágil e na convenção por codificação.

Configuração do ambiente

Antes de dar início ao tutorial, é preciso configurar o ambiente para que os scripts do Grails funcionem corretamente. Efetue o download do Grails em www.grails.org. Usaremos a versão 1.0.2. Feito o download, descompacte o arquivo para c:\grails e configure as variáveis de ambiente. (No Windows, isso pode ser feito clicando com o botão direito em Meu Computador > Propriedades > Avançado >Variáveis de Ambiente.) Crie uma variável GRAILS_HOME cujo conteúdo é o path de instalação do Grails, como c:\grails. Edite também sua variável PATH, adicionando o caminho %GRAILS_HOME%\bin. Valide a configuração no prompt de comando, como pode ser visto na Listagem 1.

 

Listagem 1. Saída do comando grails no prompt de comando

C:\>grails

Welcome to Grails 1.0.2 - http://grails.org/

Licensed under Apache Standard License 2.0

Grails home is set to: c:\grails

No script name specified. Use 'grails help' for more info

O runtime do Groovy já vem embutido na distribuição do Grails, portanto, não é necessária nenhuma instalação ou configurção adicional do Groovy.

Primeiros passos: entendimento da estrutura

Como já citado, a convenção evita demasiadas configurações, e é desta forma que vamos trabalhar com o Grails. A primeira tarefa será criar um projeto. No console digite o comando grails create-app, que solicitará o nome do projeto. Digite “cadastro” como exemplo.

Com isso a estrutura do projeto é gerada. Digite cd cadastro e examine seu conteúdo. A Listagem 2 descreve os diretórios do projeto criados pelo script.

 

Listagem 2. Descrição da estrutura do projeto Grails

%PROJECT_HOME%

    + grails-app

       + conf                 --->Configuração dos artefatos (data sources, mapeamentos de URL etc.)

           + hibernate              --->configurações opcionais do Hibernate

           + spring                 --->configurações opcionais do Spring

       + controllers          --->Localização dos controladores

       + domain               --->Localização das classes de domínio

       + i18n                 --->Localização das bundles messages para i18n

       + services             --->Localização de serviços

       + taglib               --->Localização das taglibs

       + util                 --->Classes utilitárias

       + views                --->Localização das views

+ layouts              --->Localização dos layouts

   + lib

   + scripts                  ---> scripts

+ src

       + groovy               --->opcional

       + java                 --->opcional

   + test                     --->classes de testes gerados

   + web-app

       + WEB-INF

 

Visão Geral, um perfil da ferramenta

Para contextualizar melhor os utilitários da ferramenta, vamos testar também outros scripts de configuração, utilizando a seguinte sintaxe grails [nome-do-comando] (ver Tabela 1).

 

Comando

Descrição

create-app

Cria uma nova aplicação Grails.

create-controller

Cria um novo controlador.

create-domain-class

Cria uma classe de domínio.

generate-controller

Cria um controlador para uma classe de domínio.

test-app

Roda os testes da aplicação. ...

Quer ler esse conteúdo completo? Tenha acesso completo