O que aprendi com
Play Framework
ObjetivoObjetivo
Compartilhar o Aprendizado com aCompartilhar o Aprendizado com a
tecnologia 'Play Framework' bemtecnologi...
RotaRota
Oque é?Oque é?
Core Play!Core Play!
Synchronous/bloking vs Async/Non-Synchronous/bloking vs Async/Non-
BlockingBl...
Oque é?Oque é?
“Play é baseado em uma leve,
amigável e stateless arquitetura
Web, possui o consumo de
recursos previsíveis...
por que?por que?
mais um framework?mais um framework?
Mudanças nos RequisitosMudanças nos Requisitos
É HORA DE MUDAR
Reactive Systems/ProgrammingReactive Systems/Programming
http://www.reactivemanifesto.org/
Core Play!Core Play!
Os mais Usados Synchronous/Bloking IOOs mais Usados Synchronous/Bloking IO
Async/Non-Blocking IO que estão ganhandoAsync/Non-Blocking IO que estão ganhando
popularidadepopularidade
Bloking vs Non Bloking IOBloking vs Non Bloking IO
Non Bloking IO: Você pede
a pizza, a atendente
anota, desliga e atende ...
NIO BenefíciosNIO Benefícios
• Consomem recursos somente quando
estiverem ativos
• Menor sobrecarga do sistema
• Suporta v...
Qualidade com AgilidadeQualidade com Agilidade
• KISS (Keep It Simple, Stupid)
• CoC (Convension Over Configuration)
• DRY...
Mão na MassaMão na Massa
URL Routing (RESTFul)URL Routing (RESTFul)
VERB PATH CONTROLLER_METHOD
GET / controllers.Application.index()
GET /foo cont...
Controllers Share-Nothing(Stateless)
public static Result index() {
return ok(index.render("hello, world"));
}
COMPOSABLE, TYPE-SAFE SCALACOMPOSABLE, TYPE-SAFE SCALA
TEMPLATESTEMPLATES
@(message: String)
@main("Welcome to Play 2.0") ...
E AGORA REINICIAR O SERVIDOR?E AGORA REINICIAR O SERVIDOR?
Percentual de tempo de codificação
separado para o redeploying
Waiting[2]
TestesTestes
● Controllers
● Templates
● Routes
● Integration Tests
ASSET COMPILERSASSET COMPILERS
●
CoffeeScriptCoffeeScript
●
LESSLESS
●
SASSSASS
●
RequireJSRequireJS
●
JSHintJSHint
●
entr...
WEBJARSWEBJARS
● Bibliotecas mais usadas no client-side:
jQuery, Bootstrap, etc
● Gerencia a controle de versão através
de...
Evolution Data BaseEvolution Data Base
Controle a versão do seu
Banco
WebSocketsWebSockets
● Introduzido no HTML5
● Define uma full-duplex single socket connection,
através da qual é possível ...
Akka (Modelo de Atores)Akka (Modelo de Atores)
● Abstrai a programação concorrente
● Mutabilidade isolada
● Imutabilidade ...
Mas o que é um ator?Mas o que é um ator?
● Modelo criado em 1987 pela
Linguagem Erlang
● Entidades Independentes
● Estado
...
QUEM USA PLAY / SCALA?QUEM USA PLAY / SCALA?
https://typesafe.com/resources/case-studies-and-stories
ConclusãoConclusão
De uma curva de apredizado baixa,
Play! é uma excelente ferramenta para
o desenvolvimento de aplicações...
ReferenciasReferencias
1.http://presos.jamesward.com/practicing_continuous_delivery/#/4/1
2.http://zeroturnaround.com/rebe...
DUVIDAS?
OBRIGADO
PlayFramework
PlayFramework
PlayFramework
Próximos SlideShares
Carregando em…5
×

PlayFramework

225 visualizações

Publicada em

Apresentação realizada no Intervalo técnico na Pitang

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
225
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Responsive: O sistema responde em tempo hábil, se possível.
    Resiliente: O sistema permanece responsivo em face da falha
    Elastic: O sistema permanece responsivo sob variando carga de trabalho. Sistemas reativos pode reagir a mudanças na taxa de entrada, aumentando ou diminuindo os recursos alocados para atender a esses insumos.
    Mensagem Driven: sistemas reativos contam com uma passagem de mensagens assíncrona para estabelecer uma fronteira entre os componentes que garante o baixo acoplamento, isolamento, transparência de localização , e fornece os meios para delegar erros como mensagens.
  • Comunicação Non-blocking permite que os destinatários apenas consumam recursos quando estiverem ativos, levando a uma menor sistema sobrecarga.
  • Comunicação Non-blocking permite que os destinatários apenas consumam recursos quando estiverem ativos, levando a uma menor sistema sobrecarga.
  • métodos estáticos são ruins, ele não são testáveis, e assim por diante, mas ele está aqui por uma razão muito importante, um controller é um objeto sem estado, porque o protocole HTTP por si é stateless, você faz uma requisição, você obtêm a resposta... não há relação entre essas conexões
  • Usa
    http://www.fluentlenium.org/
    Uma facilitador para o Selenium
  • PlayFramework

    1. 1. O que aprendi com Play Framework
    2. 2. ObjetivoObjetivo Compartilhar o Aprendizado com aCompartilhar o Aprendizado com a tecnologia 'Play Framework' bemtecnologia 'Play Framework' bem como apresentar um modelo decomo apresentar um modelo de programação/sistemas reativos paraprogramação/sistemas reativos para requisitos de alto desempenho erequisitos de alto desempenho e escalabilidadeescalabilidade
    3. 3. RotaRota Oque é?Oque é? Core Play!Core Play! Synchronous/bloking vs Async/Non-Synchronous/bloking vs Async/Non- BlockingBlocking Reactive Systems/ProgrammingReactive Systems/Programming URL Routing (RESTFul)URL Routing (RESTFul) Shere-Nothing(Stateless)Shere-Nothing(Stateless) Template EngineTemplate Engine Class ReloadingClass Reloading TestesTestes Evolution Data BaseEvolution Data Base WebSocketsWebSockets Akka(Modelo de Atores)Akka(Modelo de Atores)
    4. 4. Oque é?Oque é? “Play é baseado em uma leve, amigável e stateless arquitetura Web, possui o consumo de recursos previsíveis e mínimos de (CPU, Memoria,Threads) para aplicações altamente escaláveis” [1]
    5. 5. por que?por que?
    6. 6. mais um framework?mais um framework?
    7. 7. Mudanças nos RequisitosMudanças nos Requisitos
    8. 8. É HORA DE MUDAR
    9. 9. Reactive Systems/ProgrammingReactive Systems/Programming http://www.reactivemanifesto.org/
    10. 10. Core Play!Core Play!
    11. 11. Os mais Usados Synchronous/Bloking IOOs mais Usados Synchronous/Bloking IO
    12. 12. Async/Non-Blocking IO que estão ganhandoAsync/Non-Blocking IO que estão ganhando popularidadepopularidade
    13. 13. Bloking vs Non Bloking IOBloking vs Non Bloking IO Non Bloking IO: Você pede a pizza, a atendente anota, desliga e atende o próximo cliente, quando a pizza estiver pronta ela é entregue para você Bloking IO: Você pede a pizza, a atendente vai ficar com você até quando a pizza estiver pronta
    14. 14. NIO BenefíciosNIO Benefícios • Consomem recursos somente quando estiverem ativos • Menor sobrecarga do sistema • Suporta vários conexões concorrentes • WebSockets • Comet • Server-Send Events
    15. 15. Qualidade com AgilidadeQualidade com Agilidade • KISS (Keep It Simple, Stupid) • CoC (Convension Over Configuration) • DRY (Dont Repeat Youself) • YAGNI (You Arent Gonna Need It) • GRASP (General Responsibility Assignment Software Patterns) • SOLID (Single responsibility, Open-closed, Liskov substitution, Interfacesegregation and Dependency inversion) • TDD (Test Driven Development) • BDD (Behavior Driven Development)
    16. 16. Mão na MassaMão na Massa
    17. 17. URL Routing (RESTFul)URL Routing (RESTFul) VERB PATH CONTROLLER_METHOD GET / controllers.Application.index() GET /foo controllers.Application.foo()
    18. 18. Controllers Share-Nothing(Stateless) public static Result index() { return ok(index.render("hello, world")); }
    19. 19. COMPOSABLE, TYPE-SAFE SCALACOMPOSABLE, TYPE-SAFE SCALA TEMPLATESTEMPLATES @(message: String) @main("Welcome to Play 2.0") { @message }
    20. 20. E AGORA REINICIAR O SERVIDOR?E AGORA REINICIAR O SERVIDOR?
    21. 21. Percentual de tempo de codificação separado para o redeploying Waiting[2]
    22. 22. TestesTestes ● Controllers ● Templates ● Routes ● Integration Tests
    23. 23. ASSET COMPILERSASSET COMPILERS ● CoffeeScriptCoffeeScript ● LESSLESS ● SASSSASS ● RequireJSRequireJS ● JSHintJSHint ● entre outros...entre outros...
    24. 24. WEBJARSWEBJARS ● Bibliotecas mais usadas no client-side: jQuery, Bootstrap, etc ● Gerencia a controle de versão através de gerenciamento de dependência
    25. 25. Evolution Data BaseEvolution Data Base Controle a versão do seu Banco
    26. 26. WebSocketsWebSockets ● Introduzido no HTML5 ● Define uma full-duplex single socket connection, através da qual é possível enviar mensagens entre cliente e servidor ● Simplifica a complexidade em torno da comunicação web bi-direcional
    27. 27. Akka (Modelo de Atores)Akka (Modelo de Atores) ● Abstrai a programação concorrente ● Mutabilidade isolada ● Imutabilidade Compartilhada
    28. 28. Mas o que é um ator?Mas o que é um ator? ● Modelo criado em 1987 pela Linguagem Erlang ● Entidades Independentes ● Estado ● Comportamento ● Mailbox
    29. 29. QUEM USA PLAY / SCALA?QUEM USA PLAY / SCALA? https://typesafe.com/resources/case-studies-and-stories
    30. 30. ConclusãoConclusão De uma curva de apredizado baixa, Play! é uma excelente ferramenta para o desenvolvimento de aplicações web, principalmente se a cultura ágil é a marca de sua equipe
    31. 31. ReferenciasReferencias 1.http://presos.jamesward.com/practicing_continuous_delivery/#/4/1 2.http://zeroturnaround.com/rebellabs/java-ee-productivity-report-2011/ 3.https://typesafe.com/resources/case-studies-and-stories
    32. 32. DUVIDAS?
    33. 33. OBRIGADO

    ×