![Page 1: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/1.jpg)
Java WEB
5 Técnicas para acelerar o desenvolvimento e reduzir Bugs
em aplicações WEB
1
![Page 2: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/2.jpg)
E-Book gratuito - NoBugsProject
http://eepurl.com/cCGHQDOu
2
![Page 3: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/3.jpg)
Vamos usar qual tecnologia?
3
![Page 4: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/4.jpg)
Desvantagens do JSF
• Usa um pouco mais de recursos de performance• Impossibilita reuso de protótipo• Abstrai muito a parte Web• Mantém muito retro compatibilidade• Não é tão flexível quanto outros frameworks• Ignora paradigma REST
4
![Page 5: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/5.jpg)
Vantagens do JSF• Produtividade alta• Faz parte da especificação Java EE• Existem muitos profissionais que conhecem o JSF• É muito parecido com HTML na parte da view• Não é tão lento como pensam se usado da forma certa• Documentação rica• Muitas implementações da especificação JSF• Muitas extensões como por exemplo o Primefaces, Trinidad, Richfaces..• Fácil integração com os frameworks mais utilizados como Spring, especificações JPA, EJB,
etc...• Está em segundo lugar dos frameworks mais usados no mundo perdendo somente para o
Spring MVC
5
![Page 6: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/6.jpg)
Component Based X Action Based
Component Based:JSF
TapestryWicket
Action Based:Spring MVC
Apache StrutsVraptorGrails
6
![Page 7: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/7.jpg)
Implementações do JSF• Mojarra que é a implementação da SUN (GlassFish),
também (mais) conhecida como JSF RI.• Myfaces como a implementação open source da Apache• ADF Faces da Oracle• A implementação da BEA (já vem embutido WebLogic)• A implementação da IBM (já vem embutido WebSphere)• Backbase• NetAdvantage
7
![Page 8: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/8.jpg)
Extensões do JSFComponentes:• PrimeFaces - https://www.primefaces.org/showcase• RichFaces - http://showcase.richfaces.org/• ICEfaces - http://icefaces-showcase.icesoft.org/showcase.jsf• Omnifaces - http://showcase.omnifaces.org/
• Templates• Facelets
8
![Page 9: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/9.jpg)
Fases do JSF
9
![Page 10: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/10.jpg)
Restore View PhaseEssa fase começa quando uma requisição de uma página JSF é
feita através de um link ou botão clicado.
Durante esta fase, a implementação JSF constrói a “view” da página em manipulações de eventos, validadores que são salvos
na instância do FacesContext. É permitido resgatar todas as informações necessárias para processar uma simples requisição.
Podemos ter acesso aos componentes do XHTML através da classe UIViewRoot, também temos as classes HtmlForm,
HtmlOutputText, HtmlCommandButton, etc..
10
![Page 11: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/11.jpg)
Apply Request Values PhaseNessa fase, a árvore de componentes da página é restaurada
com os valores que foram enviados na requisição. Esses valores são obtidos através da requisição, que é aplicada ao componente em memória e não à propriedade da classe Bean para a qual o
componente aponta.
Existe um cenário em que quando um componente estiver configurado com o atributo immediate=”true”, o valor dele será diretamente ligado à propriedade na classe Bean. Esse atributo
tem a característica de tornar a aplicação imediata dos valores na classe Bean para o componente.
11
![Page 12: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/12.jpg)
Process Validations Phase
Durante essa fase, o JSF executa todos os validadores e valores registrados que possuem a configuração do campo com o
atributo required=”true”, validators..
12
![Page 13: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/13.jpg)
Update Model Values Phase
13
Nessa fase, os valores já estão validados e registrados nos componentes que serão atribuídos à respectiva propriedade na classe Bean. Esse processo envolve conversores dos tipos de dados, como por exemplo, conversores personalizados ou data e número.
![Page 14: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/14.jpg)
Invoke Application Phase
14
Nessa fase, o JSF manipula qualquer nível de evento da aplicação, desde o envio de um formulário ou chamada para outra página através de um link. Depois que todos os valores já estarem validados, convertidos e atribuídos para as propriedades da classe Bean, se for o caso, o JSF adicionará o método da classe Bean que adicionou a requisição. Geralmente são eventos que retornam uma String, que está associada a uma navegação de uma página dentro da aplicação.
![Page 15: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/15.jpg)
Render Response Phase
15
Por ser a fase final, é exigida que quando a página for construída e devolvida para o browser, o JSF solicite que cada componente de tela que têm suas propriedades, comportamentos e forma, faça a geração do próprio HTML.
![Page 16: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/16.jpg)
Quais são as 5 técnicas?
16
1. Manipulação efetiva das fases do JSF2. Uso efetivo de Ajax nas telas JSF3. Uso efetivo de escopos do JSF4. Reusar componentes prontos5. Usar Facelets
![Page 17: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/17.jpg)
Code Time
Agora vamos ver o código!
17
![Page 18: 5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB](https://reader036.vdocuments.com.br/reader036/viewer/2022081812/58e502b01a28abdf698b66e1/html5/thumbnails/18.jpg)
Contato
18
Dúvidas [email protected]
GitHubhttps://github.com/rafadelnero/presentations
https://twitter.com/RafaDelNero
Linkedinhttps://br.linkedin.com/in/rafadelnero
Android Apphttps://play.google.com/store/apps/details?id=br.com.mediaUniversidadesAndroid