Desenvolvimento Ágil com Play! Framework

Post on 28-Nov-2014

834 views 8 download

description

Apresentação realizada no JustJava 2013, em São Paulo/SP.

Transcript of Desenvolvimento Ágil com Play! Framework

Desenvolvimento Ágil com

2

Sobre

● Atualmente é coordenador de desenvolvimento e projetos na área de telecom;

● Entusiasta de metodologias ágeis Scrum, XP, Kanban e desenvolvimento Web, HTML5 e noSQL;

● Certificações: SCJA, SCJP, SCEA, CSM, CSPO e CSD

● Fã de basquete, futebol e surf;

● Viciado em jogos (Halo, CoD, Skyrim, Assassins Creed)keuller.magalhaes@gmail.com

3

Agenda

● Introdução

● Play! no Mundo

● Casos Reais

● Play! Na Prática

● Demo

● Conclusão

4

Introdução

● É um full-stack framework Web

● Uma alternativa ao desenvolvimento Web padrão JavaEE

● Foco principal na simplicidade, produtividade e escalabilidade de aplicações Web

● Core do framework escrito em Scala/Java

● Estrutura de URLs seguindo o padrão REST

● Modelo de convenção sob configuração

● Esquema de views dinâmico/compilado

● Suporte a tecnologias emergentes (HTML5, WebSockets,etc)

5

Introdução

● Filosofia do framework:

– Produtividade com simplificadade

– Diversão

– Programação assíncrona

– Foco em tipagem forte

– Suporte nativo a Java e Scala

– Ferramenta de construção integrada (SBT)

– Integração entre o modelo e armazenamento de dados

6

Play! No Mundo

Empresas ao redor do mundo utilizando Play!

7

Play! No Mundo

Estatísticas de Pesquisa no Google Trends! Jun/2013

8

Play! No Mundo

Pesquisa no Google Trends! Jun/2013

9

Casos Reais

10

Cases Reais

● Cooperativa de Pesca

11

Cases Reais

● Cooperativa de Pesca

12

Cases Reais

● ERP Escolar

13

Cases Reais

● Gestão Financeira de Projetos

Como posso ser Ágil de fato ?

Onde o Play! pode me ajudar ?

Quero desenvolver feliz ?

15

Play! na Prática

● KISS (Keep It Simple, Stupid)

● CoC (Convension Over Configuration)

● DRY (Don't Repeat Youself)

● YAGNI (You Aren't Gonna Need It)

● GRASP (General Responsibility Assignment Software Patterns)

● SOLID (Single responsibility, Open-closed, Liskov substitution, Interface

segregation and Dependency inversion)

● TDD (Test Driven Development)

Resumindo:

Qualidade com Agilidade!

16

Play! na prática

HTTP

Routes

Cotroladores

Model ModelHTML XML JSON

● MVC

● Page Controller

● Separation of Concern

● DRY

● Active Record

● Low Coupling

● High Cohesion

● Single Responsability

● Interface segregation

● Dependency Inversion

● YAGNI

17

Play! na Prática

● Componentes Core do Play!

– Routes

Definem URLs para acessos aos controladores– Controladores

Executam processamento das requisições HTTP– Modelos

Representam modelos de dados– Views

Representam as interfaces gráficas

18

Demo

● Formulário de Submissão de Palestras

● Como obter o framework ?

– www.playframework.org

● Baixar e descompactar

– Adicionar no classpath

19

Demo

● Criando Aplicação

$ play new jj2013● Acessando o console

$ play● Importando no Eclipse

$ eclipse [with-source=true]● Executando nossa Aplicação

$ ~ run [8080]

20

Demo

● Estrutura de uma Aplicação Play!

+ jj2013  + app    + controllers    + models    + views  + conf  + logs  + project  + public    + css    + images    + javascripts  + test

Recursos dinâmicos

Recursos estáticos

21

Demo

22

Conclusão

● Full stack web framework

● Focado na arquitetura WOA

● Escalabilidade (I/O não bloqueante)

● Alta performance

● Baseado na Convenção sob Configuração

● Curva de aprendizado baixa

● Não segue o padrão Web Java EE

23

Q&A

Entenderam tudo ?