Artigo Java Magazine 75 - Grails: do Groovy à Web – Parte 1
Conheça o Grails: um framework para criação de aplicações web que simplifica significativamente o processo de desenvolvimento.
Artigos Java Artigo Java Magazine 75 - Grails: do Groovy à Web – Parte 1
Grails: do Groovy à Web – Parte 2
Grails: do Groovy à Web – Parte 3
Grails: do Groovy à Web – Parte 4
Grails: do Groovy à Web – Parte 5
Grails é um framework de alta produtividade baseado na linguagem de programação Groovy. Nesta série de artigos veremos em detalhes o funcionamento deste framework. No entanto, para iniciarmos, devemos conhecer o básico sobre o funcionamento de Groovy, que será o conteúdo deste artigo.
Groovy é uma linguagem de programação dinâmica de altíssima produtividade executada na JVM que oferece algumas melhorias em relação à linguagem Java. É, portanto, uma ferramenta extremamente poderosa para aqueles que valorizam os ganhos proporcionados pela máquina virtual Java, porém gostariam de trabalhar com uma linguagem dinâmica como Ruby, mas que ao mesmo tempo não seja distante sintaticamente da linguagem Java.
Toda aplicação feita em Grails é desenvolvida em Groovy. Sendo assim, o conhecimento da linguagem é fundamental para a compreensão do framework. Além disto, trata-se de uma excelente linguagem para a criação de scripts que acessam nativamente código legado Java.
Grails: do Groovy à Web:
Neste artigo foram apresentados os principais conceitos por trás do funcionamento da linguagem Groovy. No caso, foram apresentados os pontos que são fundamentais para a compreensão do framework Grails, que é baseado nesta linguagem.
A plataforma Java EE tem sido alvo de diversas críticas relacionadas à complexidade envolvida no desenvolvimento de aplicações web, entre elas:
Muito trabalho gasto na edição de arquivos de configuração;
Gerenciamento de dependências complexo: o desenvolvedor Java possui bibliotecas e frameworks magníficos ao seu dispor, como por exemplo, Hibernate, Spring, Log4J e muitos outros. São ferramentas que realmente aumentam significativamente nossa produtividade. Infelizmente, é muito comum vermos boa parte desta produtividade ser perdida no momento em que integramos estas ferramentas;
Muito trabalho repetitivo: alguns pontos no desenvolvimento de aplicações web são naturalmente repetitivos, como a criação de formulários para inclusão, edição e listagem de registros em bancos de dados;
O mundo não é tão complexo: a maioria dos projetos envolve basicamente a edição de registros em um banco de dados. Não é incomum encontrarmos iniciantes na plataforma Java EE que se assustam com a complexidade que lhes é apresentada: JMS, EJBs, RMI e diversas outras siglas que não são obrigatórias para o desenvolvimento deste tipo de aplicação, o que acaba tornando necessária a criação de uma maneira mais direta de se tratar este escopo de desenvolvimento.
Visando suprir estas lacunas, surge Grails, um framework full stack para desenvolvimento de aplicações web inspirado em Ruby on Rails que, junto com este, compartilha dos seguintes princípios:
DRY – Don`t Repeat Yourself
No desenvolvimento de aplicações web, fica nítido que boa parte do trabalho feito pelo desenvolvedor é repetitiva. Grails resolve este problema automatizando a geração de diversos artefatos que normalmente são gerados pelo programador, como é o caso das interfaces gráficas para CRUD e controladores, diminuindo significativamente a execução de esforço repetitivo. A questão é: por que não passar para o framework a execução de tarefas repetitivas, que podem ser facilmente automatizadas?
Convenções sobre configuração
Uma reclamação constante no desenvolvimento de aplicações corporativas na plataforma Java está no gerenciamento de arquivos de configuração. Ao adotar o conceito de convenções sobre configuração, Grails torna esta tarefa coisa do passado.
Isto se torna possível a partir de uma série de convenções – todas muito simples – que definem os padrões de comportamento adotados pelo framework. No entanto, convém mencionar que são convenções sobre configurações, e não ao invés de, visto o alvo ser o ambiente corporativo, no qual a probabilidade do desenvolvedor precisar integrar sua aplicação feita em Grails com bases de dados e sistemas legados é certa. Nestes casos, Grails oferece a flexibilidade necessária para que a integração se torne viável, entretanto, com um diferencial: a quantidade de arquivos de configuração a serem alterados será significativamente menor.