Por que eu devo ler este artigo:Esse artigo é útil por promover um primeiro contato do desenvolvedor com um framework de alta produtividade feito para a plataforma Java e, portanto, compatível com todas as ferramentas e conceitos que Java disponibiliza.

Os métodos ágeis de desenvolvimento de software partem do princípio de que os requisitos e as soluções evoluem por meio da colaboração entre as partes envolvidas. Nesse sentido, o Manifesto Ágil, publicado em 2001, define o seguinte conjunto de valores e práticas para tornar o desenvolvimento de software mais “leve”, rápido e preciso:

· Foco nos indivíduos e suas interações ao invés de processos e ferramentas;

· Software funcional ao invés de documentação abrangente;

· Colaboração com o cliente ao invés de negociação de contratos;

· Resposta a mudanças ao invés de ficar preso ao planejado.

O que está por traz desse conjunto de valores é a busca pela solução para problemas clássicos do desenvolvimento de software, como a inadequação às necessidades dos clientes e o tempo de desenvolvimento.

De forma geral, esses problemas vêm combinados e o desgaste entre as partes é inevitável – entregar no prazo é um grande problema e entregar exatamente o que o cliente deseja é um problema ainda maior.

Não é objetivo deste artigo se aprofundar nos princípios que regem o Manifesto Ágil, mas vale destacar que algumas técnicas de engenharia de software aplicam tais princípios, promovendo, por exemplo, a entrega contínua de artefatos funcionais, aproximação entre cliente e desenvolvedores, favorecimento da auto-organização do trabalho pelas equipes de desenvolvimento, etc.

Destaca-se nesse contexto o SCRUM, que ganha cada vez mais espaço na comunidade de desenvolvedores pelo mundo.

Apesar desses esforços, algumas perguntas persistem, por exemplo: como o processo de desenvolvimento pode ser efetivamente acelerado? É realmente possível abandonar uma parte da documentação em prol do software? A tarefa de programação pode ser simplificada?

Diversas iniciativas do campo da engenharia de software ou das linguagens de programação oferecem respostas para essas perguntas, acompanhando a crescente popularização do paradigma ágil. O Grails é uma dessas iniciativas, e responde ao menos uma dessas questões: a tarefa de programação pode sim ser simplificada.

Inicialmente chamado de Groovy on Rails – uma vez que incorpora a linguagem Groovy –, o Grails começou a ser desenvolvido em 2005 e seu primeiro beta foi lançado em 2006. Seu objetivo é ser um framework de alta produtividade para o desenvolvimento de aplicações web sobre a plataforma Java.

Como é parte da arquitetura Java, é possível utilizar, a partir do Grails, de forma livre e transparente, todo o ferramental disponível, como Hibernate, Spring, Ant, etc.

Embora estáveis, as especificações de JavaServer Pages (JSP) e Servlets para o desenvolvimento na Web com Java não são simples. Para criar aplicações, são necessários conhecimentos sólidos nessas APIs e realizar tarefas de configuração e manutenção de ambientes.

Isso pode representar uma desvantagem em relação a outras plataformas nas quais, supostamente, o desenvolvimento pode ser mais simples, como PHP.

Embora a literatura a respeito do tema não trace essa relação direta – e esse não seja o único problema que o Grails se propõe a resolver –, esse tipo de ocorrência justifica a opção por um framework de alta produtividade.

Mas o que é “alta produtividade” no desenvolvimento de software? Em resumo, significa tornar o desenvolvimento mais fácil e veloz, a partir da simples premissa de que o melhor resultado é aquele com menor tempo de desenvolvimento e que entrega o produto mais próximo do desejo do cliente.

Para perseguir esse objetivo, o Grails incorpora um conjunto de boas práticas que visam aumentar a produtividade do desenvolvimento, das quais se destaca o uso da Convenção sobre Configuração.

Convenção sobre configuração não é uma técnica ou um padrão, mas um paradigma de projeto cuja aplicação pode ser útil na redução da carga de trabalho cognitivo do desenvolvedor.

Não se trata de limitar as decisões que o desenvolvedor toma, mas de livrá-lo das decisões mais simples para que ele volte sua capacidade cognitiva para as decisões mais complicadas.

Nesse caso, significa que o framework vai se ocupar das convenções mais comuns, como a nomenclatura de determinados conjuntos de classes ou do mapeamento objeto-relacional, livrando o desenvolvedor dessas responsabilidades, voltando sua atenção para o desenvolvimento, ao invés da configuração.

Outra característica importante do Grails é o fato de ter sido desenvolvido de acordo com o padrão Model-View-Controller. Dessa forma, o MVC é incorporado de maneira nat ...

Quer ler esse conteúdo completo? Tenha acesso completo