Recursos especiais neste artigo:
Artigo no estilo Solução Completa
Autores: Felipe Pierin e André Roque
Este artigo é um estudo sobre o Play! Framework, uma alternativa aos padrões Java Enterprise que ganha cada vez mais popularidade em serviços PaaS devido ao gerenciamento eficiente de recursos, sistema de build-deploy robusto e a capacidade de promover alta produtividade para os desenvolvedores por meio da detecção antecipada de erros.
Em que situação o tema é útil
Este tema é útil ao desenvolvedor
interessado em buscar alternativas de alta produtividade para o desenvolvimento
de aplicações web capazes de atender às novas demandas exigidas para a computação
em nuvem.
O avanço tecnológico aliado ao processo de expansão da internet vem proporcionando às pessoas melhores experiências para tarefas cotidianas como a procura por oferta e compra de produtos e serviços, tornando mais rápido e prazeroso o que antes já foi muito desgastante principalmente em função dos distanciamentos físicos de um lugar para outro. Em meio a esse processo é notável que as barreiras existentes entre as pessoas foram atenuadas em virtude da facilidade de compartilhar e encontrar informações, abrindo espaço para que a informação e o conhecimento se tornem cada vez mais difundidos. Inseridas nesse cenário, empresas já consolidadas no mercado passaram a revisar seus processos internos, convergindo em direção às metodologias ágeis de desenvolvimento em busca de maior produtividade. Enquanto isso, novas empresas têm usado as vantagens da computação na nuvem, como fácil escalabilidade e agilidade em levar o produto ao mercado, para criar sistemas inovadores e de baixo custo.
O aumento da produtividade é indiscutivelmente um dos fatores atualmente mais almejados pelas empresas de grande ou pequeno porte. Na medida em que uma empresa se torna mais produtiva, seus lucros e esforços para aumentar a qualidade de forma a agregar fatores positivos ao produto tendem a serem maiores. Para isso, é necessário buscar através de metodologias, organização ou ferramentas, uma maneira de tornar a empresa mais eficaz e ágil, de forma que seja capaz de atingir todos que queiram usufruir dos seus serviços antes da concorrência.
Nesse contexto, Play! Framework é uma solução que almeja entregar ao desenvolvedor de software um ambiente mais produtivo para a elaboração e posterior manutenção de sistemas que se encaixam com os novos requisitos exigidos pelas aplicações web atuais. É uma ferramenta singular que disponibiliza formas eficazes para atender sistemas altamente distribuídos, que dependem de informação em tempo real, lidam com alta concorrência, com programação assíncrona ou com os novos paradigmas de armazenamento de informação, tais quais os bancos de dados não relacionais. Além disso, ainda conta com a capacidade tornar um desenvolvedor mais eficiente durante o processo de desenvolvimento do software.
A curva rápida de aprendizado, o sistema de detecção de erros robusto e a capacidade de atualização de código em tempo real são as características que fazem do Play! uma ferramenta de alta produtividade. A organização do projeto em uma estrutura web MVC e o seu modelo RESTful o tornam de fácil entendimento e são características também de outros frameworks, como o Spring MVC e o VRaptor. Por sua vez, o mecanismo de detecção de erros utilizado pelo Play!, que engloba desde arquivos de configuração até o código-fonte propriamente dito, está baseado na força de recursos da linguagem Scala. Já os modelos de compilação, build e deploy, contrastam com os padrões J2EE tradicionais e, por esse motivo, considera-se que o framework é mais parecido com soluções como Django, Grails, ou Rails.
Em meio ao processo de criação de software, um dos fatores que estimulam o incremento da produtividade para o desenvolvedor é a capacidade de identificar possíveis erros o quanto antes, tais como chamadas a métodos incorretos ou até o uso de funções inexistentes. O Play! é uma ferramenta que consegue abordar essas inconsistências semânticas logo nos estágios iniciais do processo de compilação e engloba não só a linguagem de programação usual, mas também abrange os arquivos de configuração, de definição de rotas (rotas são a forma como o Play! liga URLs a métodos dos Controllers) e os templates, que definem as páginas que serão renderizadas. Isso torna plausível encontrar problemas que antes só seriam vistos quando a aplicação já se encontrasse rodando, pois questões como o tipo dos dados que devem ser passados para um template ou a divergência entre os parâmetros usados na URL de uma rota com os respectivos métodos declarados em um dado Controller serão encontrados logo durante o processo de compilação. No entanto, a convergência do Play! para a antecipação da detecção de problemas que envolvem a inter-relação entre código-fonte, arquivos de configuração e templates, não é uma característica herdada do Java, mas sim da relação cada vez mais presente do framework com outra linguagem: a Scala.
A linguagem Scala é o grande segredo por trás das propriedades não usuais da linguagem Java e que estão presentes no pacote oferecido pelo Play!, como é o caso da detecção antecipada de erros. Justamente para aproveitar a força de uma linguagem funcional é que os criadores do framework decidiram pela revisão completa da solução baseada em Java e adotada durante as versões 1.x, migrando-a definitivamente para Scala nas versões 2.x em diante. Apesar disso, a adoção do Scala como coração do framework não necessariamente implica em uma dor de cabeça ao usuário que está habituado com a linguagem Java, afinal, são grandes os indícios de que o suporte ao desenvolvimento com Java será sempre mantido. Até mesmo para a criação de arquivos de configuração, rotas ou templates, onde a linguagem se faz mais presente, não se é exigido um alto grau de conhecimento nela, assim como na versão 1.x não era necessário uma familiaridade com Groovy. Ademais, alguns ganhos podem ser observados pelo maior uso de Scala, já que os arquivos de configuração podem ser reutilizados com maior facilidade e, por serem compilados, podem vir a trazer um ganho significativo de performance.
O Play! torna o desenvolvedor eficiente não só pela detecção de erros otimizada, mas também pela forma com que lida com o processo de recarregamento de código-fonte simultâneo à aplicação rodando, o chamado “hot-reloading”. Hot-reloading permite que o desenvolvedor altere o código sem precisar reiniciar a aplicação, o que torna muito mais curto o ciclo de feedback (o tempo entre fazer uma alteração e verificar se os resultados estão corretos). Esses ciclos curtos de feedback se tornam possíveis por uma API HTTP assíncrona divergente dos padrões Java EE da API de Servlet. Esse é um dos motivos pelos quais o framework possui um servidor HTTP embutido e, dessa maneira, permite o deploy sem a necessidade de um container como o JBoss, Tomcat ou Jetty associados.
Por fim, antes de iniciar os exemplos sobre o uso da ferramenta, é importante salientar que o Play! Framework foi elaborado de forma a ser uma alternativa Stateless, isto é, não possui sessões Java EE atreladas a cada conexão iniciada com o servidor. Além disso, é disponibilizado com uma variedade de bibliotecas populares para prover uma ampla gama de funcionalidades. O uso dessas bibliotecas, porém, requer um breve conhecimento da ferramenta de build SBT (Simple Build Tool), que é similar aos já conhecidos Ant e Maven.
Construindo uma Loja Virtual
Neste artigo, abordaremos a criação de uma loja virtual simples que usa, de forma extensiva, os recursos básicos oferecidos pelo Play! Framework. A partir desse projeto, teremos a oportunidade de explorar um conjunto considerável das capacidades oferecidas pela ferramenta e que são realmente úteis quando se trata do desenvolvimento de sistemas e aplicações voltadas para a ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.