O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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

242 visualizações

Publicada em

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

Publicada em: Engenharia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×