Grails Essencial

1 – Aula introdutória

Objetivo: preparar o aluno para que possa prosseguir com o treinamento da forma mais produtiva possível.

Serão expostas brevemente as tecnologias Groovy e Grails, além de também apresentar o ferramental exigido para que possa continuar com as aulas.

  • Exposição do curso e do que será exposto
  • Apresentação da linguagem Groovy e framework web Grails
  • Exposição do ferramental necessário para a execução do curso.
    • Instalação do Grails
    • Instalação do MySQL
    • Editores de texto recomendados
    • IDEs recomendadas

2 – Groovy essencial

Objetivo: apresentar a linguagem Groovy para o aluno, expondo seus aspectos fundamentais, de tal modo que seja possível tirar máximo proveito do Grails.

  • Conhecendo seu ferramental: Groovy Console
  • Sintaxe essencial
  • Estruturas de controle
  • Declaração de variáveis
  • Entendendo o conceito de tipagem opcional
  • Lidando com strings
  • Coleções
  • Closures
  • Orientação a objetos em Groovy
    • Entendendo POGOs
    • Meta programação
    • Adicionando métodos e propriedades em nossas classes em tempo de execução.
    • Interceptando chamadas de método e propriedades em nsosas classes.
    • Traits

3 – Primeiro contato com Grails

Objetivo: apresentar o ambiente de desenvolvimento Grails. Serão apresentadas as principais convenções adotadas pelo framework e conceitos relacionados. Trata-se de uma visão panorâmica inicial que fornecerá a fundação para que possamos nos aprofundar no framework conforme progredimos nas aulas seguintes.

  • Conhecendo a interface de linha de comando
  • Criação e modelagem de classes de domínio
  • Apresentação do padrão de projeto MVC
  • Geração de controladores e páginas com scaffolding
  • Entendendo como funciona o mapeamento de URLs
  • Conhecendo os controladores
  • Configurando o acesso ao banco de dados
    • Entendendo o conceito de ambientes (environments)
    • Inclusão de dependências (apenas o início)
  • Implantação da aplicação

4 – Mergulhando em GORM

Objetivo: iremos entender com detalhes o funcionamento do GORM. O aluno entenderá como funciona o mecanismo de persistência do Grails, além de alguns comportamentos pouco conhecidos dos quais poderá tirar máximo proveito. O aluno também conhecerá as possibilidades de consulta oferecidas pelo framework.

  • Nossa ferramenta: Grails Console
  • Entendendo o mapeamento objeto relacional. Como atributos viram campos? Lidando com bases de dados legadas
  • Persistência fundamental.
    • Como incluir, editar e excluir registros no banco de dados
    • Validação
  • Conhecendo a sessão –
    Comportamentos pouco divulgados do GORM que parecem armadilhas e não são.
  • Mecanismos de consulta
    • Finders dinâmicos
      • persistência com finders dinâmicos
    • Criterias
      • processamento em lote
    • Buscas por where
    • HQL
      • processamento em lote

5 – Controladores e visualização

Objetivo: o aluno irá aprender a trabalhar com a camada de visualização e controle do Grails. Veremos como executar tarefas básicas do controlador e também criação de interfaces REST. Além disto, será apresentada a camada de visualização do framework.

  • Entendendo o processo de requisição e resposta dos controladores Grails.
    • Redirecionamentos, renderização de respostas, data binding (processamento de formulários)
  • Criação de interfaces REST com Grails
  • Entendendo GSP
  • Trabalhando com validações
  • Trabalhando com templates e bibliotecas de tags
  • Ajax
  • Customização do scaffolding
    • Aplicação de um framework CSS como Bootstrap, Zurb Foundation ou outros
  • Lidando com recursos estáticos (JavaScript, CSS, Imagens, etc)
  • Internacionalização
  • Entendendo escopos

6 – Serviços e testes

Objetivo: apresentar a camada de serviço do Grails e as principais razões pelas quais devemos implementar nossa lógica de negócio em serviços. Também serão apresentadas técnicas de testes que poderão ser usadas pelos alunos para garantir a qualidade dos seus sistemas.

  • Apresentação dos serviços Grails
    • Escrita de lógica de negócio
    • Entendendo o conceito de injeção de dependências
    • Aplicação de transações
  • Escrita de testes
    • Testes integrados de serviços
    • Testando controladores, classes de domínio e bibliotecas de tag