Play Framework – alta produtividade em Java

segunda-feira, 05/12/2011 3:15 pm  

O Play é um framework open source para aplicações web, escrito em Java, que possibilita o desenvolvimento de aplicações web que seguem o padrão MVC. Tem por objetivo otimizar a produtividade do desenvolvedor através do uso de configuração sobre convenção (CoC). Com recompilação feita durante a execução da aplicação, e caso ocorra algum erro, o respectivo é exibido no browser, indicando a linha do erro.

Atenção: o objetivo desse post é realizar uma visão geral do que se tratá o Play Framework que temos ouvidos os comentários na internet.

 

O Play Framework torna o desenvolvimento de aplicações Java e Scala uma tarefa fácil para o desenvolvedor.

Site: Play Framework

Descubra uma alternativa limpa e leve para as atuais aplicações Java Enterprise. O Play é focado na produtividade do desenvolvedor e tem por alvo a arquitetura RESTFul.

Apesar do Play ter sido escrito em Java, ele suporta a linguagem Scala desde a versão 1.1 (hoje[Dezembro/2011] está na versão 1.2.4). Este ano a empresa Typesafe (responsável pela linguagem Scala), anunciou a aquisição do Play Framework e este será mantido pela empresa. Uma das novidades relacionado a este anuncio é que a versão 2.0 o núcleo do Play Framework está sendo totalmente reescrito em Scala.

 

Um vídeo para uma breve apresentação do Play Framework: Desenvolcendo uma aplicação web em 10 minutos

 

Motivação

O Play foi muito inspirado no Ruby on Rails e Django. Um desenvolvedor familiarizado com qualquer um desses 2, irá se sentir em casa.

Algo que é fato, Ruby on Rails e Django são produtivos, então por que não ter o mesmo nível de produtividade com java?

O Play utiliza do poder das aplicações Java, porém sem o "sofrimento" necessário para o desenvolvimento de aplicações centradas no modelo Java Enterprise. Libertando das metodologias e ideologias relacionadas ao desenvolvimento de aplicações Java EE, o Play prove para os desenvolvedores uma maneira fácil e elegante de trabalhar, visando o aumento da produtividade.

Caso você queria, basta um editor de código e será mais que o suficiente para o desenvolvimento de aplicações, chega a ser incrível pensar que conseguiremos desenvolver aplicações Java Web sem a necessidade de um IDE (Eclipse, Netbeans, …), mas vale lembrar, que estas IDE's ainda possuem seus atratívos e auxiliam em nossa produtividade.

Apesar de que as aplicações desenvolvidas com o Play, foram projetadas para executar dentro do JBoss Netty Web Server, as aplicações podem ser empacotadas em arquivos WAR e distribuídas para outros servidores de aplicações Java EE (ex.: Apache Tomcat).
 

Maiores diferenças com os demais frameworks

Stateless: o Play é totalmente RESTful – não existe conexão por sessão Java EE. Isto torna o Play muito mais escalável que os demais frameworks.

Sem configuração: realizar o download, descompactar e desenvolver.

Fácil ida e volta: sem necessidade de deploy no servidor de aplicação, apenas edite o código e atualize o browser.

Teste unitário integrado: suportes nativos para JUnit e Selenium.

API elegante: raramente um desenvolvedor terá a necessidade de importar alguma lib. O Play já disponibiliza a maioria dos recursos necessários para o desenvolvimento de uma aplicação.

Métodos estáticos: todos os controles de entrada e métodos de negócio são declarados como estáticos. E isto é de fato bem diferente o que vemos nos demais frameworks Java.

I/O Assíncrona: através do uso do servidor web JBoss Netty, o Play consegue disponibilizar e tratar uma enorme quantidade de requisições assíncronas.

Arquitetura Modular: assim como Rail e Django, o Play utiliza o conceito de módulos. O que possibilida um meio elegante e simples de expandir o core do Play.

Módulo CRUD: fácil construção de UI administrativas com pouco código.

Módulo Scala: disponibiliza um suporte completo para Scala.

 

Componentes

O Play utiliza massivamente algumas bibliotecas populares:

  • JBoss Netty para o servidor web.
  • Hibernate para a camada de dados.
  • Groovy para a os templates.
  • O compilador do Eclipse para atualização da aplicação sem necessidade de realizar um deploy da aplicação para testar as alterações (hot-reloading).
  • Apache Ivy para gerencimanto de dependencias.

Funcionalidades presentes no núcleo do Play:

  • Um framework RESTful limpo e leve.
  • CRUD: um módulo para simplicifar a edição de modelos de objetos.
  • Secure: um módulo para habilitar um sistema de autentificação de usuários.
  • Um framework de validação baseado em anotações.
  • Um Job Scheduler (agendamento de tarefas).
  • Suporte para emails SMTP de maneira simples.
  • Suporte para JSON e XML.
  • Uma camada de persistência baseada em JPA.
  • Uma base de dados embutida para rápido deploy e testes da aplicação.
  • Um framework completo para realização de testes.
  • Funcionalidade para upload de arquivos.
  • Suporte para múltiplos ambientes de desenvolvimento.
  • Uma poderosa engine de templates baseadas em Groovy com templates, hierarquias e tags.
  • Arquitetura modular, que possibilita criar novas funcionalidades para o núcleo facilmente.
  • Suporte para OpenID e clientes de Web Service.

 

Links úteis

Informações a mais da Wikipedia

Overview do Play Framework 1.2.4

Documentação Play Framework 1.2.4

A documentação foi algo que achei interessante, me parece bem completa com bastante exemplos e informações de como utilizar as funcionalidades presentes no Play Framework.

Suporte para a linguagem Scala

Utilize a IDE de sua preferência (Eclipse, Netbeans, …)

Se por um acaso você utilize o Sublime Text 2, veja esse suporte para este editor de código [github]

Repositório de Módulos

Dentre eles temos: MongoDB, GAE, Geração de PDF, GWT, SASS e SCSS, entre outros.

 

E agora?

Bom agora que já temos uma boa idéia do que se trata o Play Framework é baixar e começar a testar e ver se na prática ele é bom mesmo.

Hora de fazer o download, instalar e colocar a mão no código: Tutorial para seguir e ver uma aplicação do início até o "fim"

Eu particularmente ainda possuo algumas questões em aberto para descobrir as respostas, dentre elas está uma: – Como é que eu utilizo o Play Framework em um projeto com uma equipe? Até o momento só tenho visto casos onde são apresentados desenvolvimetno de aplicações rápidas, porém com um único desenvolvedor…

No meu caso eu vou atrás dessa reposta.

 

, , , ,

Este post foi escrito por:

- que escreveu 500 post(s).


Entre em contato

  • Pingback: Alta produtividade em Java | DesenvolvedorSA()

  • http://www.facebook.com/assis.silva.9828 Assis Silva

    Excelente o Play!!! Problema é que a maioria da comunidade Java gosta de coisas complicadas como JSF, ficando horas resolvendo problemas que são simples em outros frameworks não orientados a componentes.