segunda-feira, 8 de fevereiro de 2010

Minha primeira aplicação Grails

Neste post, vamos criar a nossa primeira aplicação Grails, que inclui apenas um Controller.
Para atingir estes objetivos, vamos passar por os seguintes passos:
1. Criar a aplicação welcome
2. Entender a estrutura de diretórios da aplicação
3. Criar um controller básico
4. Escrever algo para mostrar ao usuário
5. Testar o código escrito
6. Rodar a aplicação

Em apenas 5 minutinhos vamos ter uma aplicação rodando!!!

Criando a aplicação
Pareçe fácil?
E é sim! Primeiramente vamos rodar o comando create-app para criar nossa aplicação.
grails create-app welcome
O próximo passo é navegar até a pasta criada para a nossa primeira aplicação.
cd welcome
De uma olhada na estrutura de pastas. Mais para frente vamos entender perfeitamente qual o objetivo de cada uma delas, mas por hora você deve saber que
a sua aplicação vai conter as seguintes pastas:
+conf
+controllers
+domain
+i18n
+services
+taglib
+utils
+views
+lib
+scripts
+src
+test
+web-app
Se tiver curiosidade, pesquise na documentação do Grails para entender qual a funcionalidade de cada uma, mas elas já são bastante descritivas.

Criando um controller
O Grails é um framework MVC, o que significa que tem modelos, visualizações e controllers para separar as responsabilidades devidamente. Os controllers,
que são a parte central de uma aplicação Grails, podem facilmente ordenar requests, entregar respostas, e delegá-las para visualizações. Vamos mostrar como criar um controller básico.
grails create-controller cadastro
Agora encoste na cadeira enquanto o Grails faz o resto.
Depois de finalizado este passo, o Grails criou duas novas classes para você. A CadastroController dentro da pasta grails-app/controllers e um teste associado a esta classe, dentro da pasta test/unit.
Toda linguagem dinâmica, como o Groovy, Ruby e Python, não dão muito suporte a excessões em tempo de compilação, o que faz com que teste sejam extremamente necessários.

Mostrando uma mensagem
Vamos abrir a nossa classe controller. Por padrão, o Grails cria um controller dentro da classe e o chama de index. A ação index, por convenção, é a ação padrão de qualquer controller.
class WelcomeController {
   def index = {}
}
Esta ação ainda não faz nada, mas por convenção ela diz ao Grails renderizar a view chamada grails-app/views/welcome/index.gs automaticamente.
Depois estudaremos views mais a fundo, não se preocupe muito com isso agora.
Todos os controllers Grails vem com um pacote de métodos embutidos, vistos mais tarde, e um deles é chamado render, um método de vários propósitos, que,
entre outras coisas, pode renderizar um resposta simples de texto.
class WelcomeController {
   def index = { render "Olá, seja muito bem vindo!" }
}

Testando o código
Vamos abrir a classe que foi anteriormente criada para o teste unitário.
O conteúdo é o seguinte:
class WelcomeControllerTests extends grails.test.ControllerUnitTestCase {
   void testSomething() {
   }
}
O Grails é separado em testes unitários e de integração. Entenda testes de integração como testes de ambiente, que testam do banco ao visual, e tendem a rodar
mais lentamente. Do outro lado, testes unitários são desenvolvidos para serem rápidos, mas exigem uso de mocks e stubs.
Stubs são classes que imitam o comportamento real do objeto, retornando códigos geralmente definidos de forma "hard-coded". Mocks fazem essencialmente a mesma coisa,
mas são um pouco mais inteligentes pois possuem "expectativas". Por exemplo, um mock pode expecificar que ele espera que um determinado método seja chamado ao menos uma vez, ou até dez vezes se necessário.
Neste ponto, vamos criar um teste unitário para confirmar o texto renderizado por nosso controller.
class StoreControllerTests extends grails.test.ControllerUnitTestCase {
   void testRenderHomePage() {
      controller.index()
      assertEquals "Olá, seja muito bem vindo!", controller.response.contentAsString
   }
}
O que estamos fazendo é utilizar as capacidades do Grails para validar o conteúdo retornado pelo controller.

Rodando os testes
Para rodar os testes, você deve executar o seguinte comando:
grails test-app
Este comando irá executar todos os testes da aplicação e salvar os resultados na pasta test/reports.

Rodando a aplicação
Para este passo final, execute:
grails run-app
E pronto, agora é só navegar para http://localhost:8080/welcome
Lá você vai ver uma lista de todos os controllers da aplicação (isso é customizável, depois aprenderemos).
Clique no seu controller e veja o resultado.

Sucesso!
Espero que aproveitem.
Abraços!

sexta-feira, 5 de fevereiro de 2010

O alvo de Grails

Para entender Grails, primeiramente precisamos saber qual é o seu objetivo: simplificar dramasticamente o desenvolvimento de aplicações J2EE.
O Grails foi pensado abraçando conceitos como o Convention over Configuration (CoC) e o Don’t Repeat Yourself (DRY).
Usualmente desenvolvendo em Grails, você vai achar que está apelando, que as coisas deveriam ser mais difíceis. Grails pode ser definido hoje como um framework que nos trás simplicidade e poder.
Tudo isso é conquistado pois ele se apoia nos ombros dos maiores.
• Hibernate
• Spring
• SiteMesh
• Tomcat
• HSQLDB
Tudo aqui é baseado no conceito de ORM e IoC, tornando no final o Grails uma plataforma e não só mais um framework.

Vamos logo ao que interessa: Grails
A instalação de Grails é tão simples quanto a sua atualização, mas com um único pré-requisito: Java SDK 1.5 ou superior.
Após a instalação do Java SDK, defina a variável de ambiente JAVA_HOME para o local onde você instalou e adicione o JAVA_HOME / bin ao seu PATH variáveis.
Baixe e descompacte o Grails de http://grails.org, crie uma variável GRAILS_HOME que aponta para o local onde você instalou o Grails, e adicione o GRAILS_HOME diretório / bin a sua variável PATH. E pronto!
Para testar, digite grails no terminal.
Você deve ver isso:
Welcome to Grails 1.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /Developer/grails-1.2
No script name specified. Use 'grails help' for more info or 'grails interactive' to
enter interactive mode

Para finalizar este post, de uma olhada nos comandos básicos digitando grails help no terminal.
Em mais 10 minutos, teremos a nossa primeira aplicação rodando.
Abraços!

Groovy - O Blog

Em paralelo ao lGrails, estou criando um blog para aqueles que não conhecem de Groovy.
O famoso Groovy Land
Abraços

Groovy & Grails

A vida de um programador Java não é facil, isso todos nós sabemos. Decidi criar um blog para tratar de um assunto que considero o próximo passo para todos os desenvolvedores que se identificam com a história do dragão (enviado por meu colega Luciano).

Certa vez um dragão aprisionou uma linda princesa em uma torre de ilha distante, a única forma de se acessar esta ilha era através de uma ponte na qual o dragão ficava dia e noite de vigia. E o programador Java foi lá matar o dragão.

Lá vai ele, chega, encontra o dragão. Desenvolve um framework para aniquilamento de dragões em múltiplas camadas, escreve artigos sobre o framework, mas no final não mata o dragão.

Acho que todo mundo já precisou enfentrar um dragão para trazer alegria ao seu cliente. Mas infelizmente nem sempre conseguimos. Java é uma linguagem poderosa, simples e fácil de aprender, mas que algumas sempre nos traz uma necessidade de aprender novos frameworks, metodologias, patterns...etc. Infelizmente o tempo que os clientes tem e a agilidade que Java oferece só aumenta o tamanho do dragão que temos que matar diariamente.

Este blog foi criado para disseminar a linguagem Groovy e seus frameworks Grails e Griffon. Não pretendo publicar um livro por enquanto, mas quem acompanhar este blog com certeza irá aprender do zero e se encantar com essa maravilhosa linguagem mantida por Guillaume Laforge.

Espero que todas as pessoas interessadas em produtividade, foco no negócio e aprendizado em geral gostem deste blog e compartilhem comigo as maravilhas de Groovy & Grails.

Abraços!

Seguidores