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)[email protected]
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 ?
Top Related