Vou começar falando sobre por que escolhi Grails e quais os pontos são necessários analisar no nomento de escolher uma ferrementa de desenvolvimento.
Acesso a base de dados
Acredito que atualmente, é necessário escolher algo que possua suporte a múltiplas bases de dados. Apesar de existir inúmeras tecnologias fornecerem ferramentas para criar uma aplicação que suporte conexão com múltiplos bancos de dados, ainda tem muito desenvolvedor utilzando PL/SQL tornando sistemas ingessados e colocando fim na questão escalabilidade.
O Grails possuí o GORM um framework de persistência baseado em ActiveRecords
do RubyOnRails e
tem como base o consagrado Hibernate no mundo Java.
Migrações
O Grails possuí o Database Migration Plugin, que torna possível criar scripts para migrar a
base de dados. Este script é totalmente DSL
, tornando fácil a criação, alteração ou exclusão de objetos ou registros.
Segurança
Bom, é imprescindível que um sistemas tenha segurança no acesso aos dados. O Grails possuí filters que são interceptadores de requisições, onde é possível definir as regras para permissão ou proibição do acesso. Caso seja necessário um controle mais rígido é possível utilizar o plugin Spring-Security.
Escalabilidade
Vou considerar este item, como sendo a capacidade de um sistema estar preparado para crescer em todos seus aspectos.
Fazer com que isto seja possível depende muito da modelagem deste sistema e isto pouco depende da tecnlogia.
Porém é necessário que a tecnologia escolhida forneça as ferramentas para isto. O Grails poussuí uma
central de plugins, que torna fácil adaptar seu sistema a inúmeras funcionalidas como por exemplo Multi-tenancy
,
segurança, migrações entre outros.
Facilidade no desenvolvimento
Neste ponto, quero relatar sobre a linguagem Groovy, que por ser uma linguagem funcional nos dá uma
facilidade enorme na hora de produzir código. Além disso, para mim que estou vindo do mundo Java e optei por manter um
software sobre a JVM, o Groovy integra com todas as classes Java existentes, além de poder produzir
código Groovy
ou Java
.
Outro item interessante são os Scaffolding. Com eles é possível gerar toda a parte de CRUD
da
sua aplicação.
Testes
Apesar de muitos desenvolvedores ainda não utilizarem testes automatizados, acredito este ser o requisisto é o mais importante. O Grails poussuí tanto testes unitários quanto testes de integração.
Conclusão
A minha escolha pelo Grails levou em consideração além dos pontos citados, a curva de aprendizado ser
menor por já conhecer a plataforma Java
, a boa documentação existente, por ser desenvolvido sobre frameworks
consolidados no mercado como: Hibernate, Spring, e por ter exemplos de sucesso como o
Linkedin e a Sky.