Download - Os 10 maus hábitos dos desenvolvedores JSF

Transcript
Page 1: Os 10 maus hábitos dos desenvolvedores JSF

Os 10 (dez) maus hábitos dos

desenvolvedores JSF

Rafael Pontehttp://[email protected]

Page 2: Os 10 maus hábitos dos desenvolvedores JSF

Quem?

● Desenvolvedor● Coordenador do grupo JavaSF● Entusiasta Java e JSF● Sócio da Triadworks● Trabalha na IVIA

“Rafael Ponte”

Page 3: Os 10 maus hábitos dos desenvolvedores JSF

JSF tenta encapsular toda a complexidade no desenvolvimento web com Java

Page 4: Os 10 maus hábitos dos desenvolvedores JSF

A maioria dos desenvolvedores webs que já trabalharam ou trabalham com algum framework “action-like” acabam tendo grandes dificuldades ao desenvolverem com JSF.

Page 5: Os 10 maus hábitos dos desenvolvedores JSF

Criando-se então maus hábitos..

Page 6: Os 10 maus hábitos dos desenvolvedores JSF

10º Mau hábito

Page 7: Os 10 maus hábitos dos desenvolvedores JSF

Usar <c:if/> ou <c:when/> para esconder componentes do usuário

Page 8: Os 10 maus hábitos dos desenvolvedores JSF

<c:if test=”#{bean.admin}”><h:dataTable var=”row”><h:column>...

</h:column></h:dataTable>

</c:if>

Page 9: Os 10 maus hábitos dos desenvolvedores JSF

Usar <c:if/> ou <c:when/> para esconder componentes do usuário

SOLUÇÃO?

Page 10: Os 10 maus hábitos dos desenvolvedores JSF

Utilizar o atributo rendered dos

componentes para escondê-los do usuário

Page 11: Os 10 maus hábitos dos desenvolvedores JSF

<c:if test=”#{bean.admin}”><h:dataTable

rendered=”#{bean.admin}”><h:column>...

</h:column></h:dataTable>

</c:if>

Page 12: Os 10 maus hábitos dos desenvolvedores JSF

9º Mau hábito

Page 13: Os 10 maus hábitos dos desenvolvedores JSF

Usar rendered="#{bean.alive}" em um componente que dispare eventos quando "bean" é de escopo de request

Page 14: Os 10 maus hábitos dos desenvolvedores JSF

<h:commandButton value=”Salvar” action=”#{bean.salvar}” rendered=”#{bean.admin}” />

Page 15: Os 10 maus hábitos dos desenvolvedores JSF

Usar rendered="#{bean.alive}" em um componente que dispare eventos quando "bean" é de escopo de request e "alive" é um atributo boolean de classe.

SOLUÇÃO?

Page 16: Os 10 maus hábitos dos desenvolvedores JSF

Ampliar o escopo do managed bean para session ou se utilizar de algum framework ou componente de escopo conversacional

Page 17: Os 10 maus hábitos dos desenvolvedores JSF

O uso indevido ou exarcebado da session é prejudicial para a aplicação.

Page 18: Os 10 maus hábitos dos desenvolvedores JSF

✔ Myfaces Tomahawk [t:saveState]✔ Myfaces Orchestra✔ Myfaces Trinidad [pageFlowScope]✔ JBoss Seam✔ JBoss Richfaces [a4j:keepAlive]✔ etc

mais longo que request | mais curto que session

Page 19: Os 10 maus hábitos dos desenvolvedores JSF

8º Mau hábito

Page 20: Os 10 maus hábitos dos desenvolvedores JSF

Acham que a tag <redirect/> nas regras de navegação muda apenas a url da barra de endereço do browser

Page 21: Os 10 maus hábitos dos desenvolvedores JSF

SOLUÇÃO?

Page 22: Os 10 maus hábitos dos desenvolvedores JSF

Simplesmente entendam como funciona um

REDIRECT

Page 23: Os 10 maus hábitos dos desenvolvedores JSF

7º Mau hábito

Page 24: Os 10 maus hábitos dos desenvolvedores JSF

Alterar o estado de algum componente no lado cliente [browser] através de javascript e esperar que isso seja “entendido” pelo JSF

Page 25: Os 10 maus hábitos dos desenvolvedores JSF

Alterar o estado de algum componente no lado cliente [browser] através de javascript e esperar que isso seja “entendido” pelo JSF

SOLUÇÃO?

Page 26: Os 10 maus hábitos dos desenvolvedores JSF

Alterar o estado do componente no lado servidor via AJAX e

re-renderizar o componente

Page 27: Os 10 maus hábitos dos desenvolvedores JSF

6º Mau hábito

Page 28: Os 10 maus hábitos dos desenvolvedores JSF

Utilização demasiada de parâmetros de request e desenvolvimento voltado a "chave primária"

Page 29: Os 10 maus hábitos dos desenvolvedores JSF

Utilização demasiada de parâmetros de request e desenvolvimento voltado a "chave primária"

SOLUÇÃO?

Page 30: Os 10 maus hábitos dos desenvolvedores JSF

Pensar mais orientado a objetos e deixar com que os

componentes troquem entidades e não “chaves

primárias”

Page 31: Os 10 maus hábitos dos desenvolvedores JSF

5º Mau hábito

Page 32: Os 10 maus hábitos dos desenvolvedores JSF

Não implementam os métodos equals() e hashCode() das entidades da aplicação

Page 33: Os 10 maus hábitos dos desenvolvedores JSF

Esquecem de implementar os métodos equals() e hashCode() das entidades da aplicação

SOLUÇÃO?

Page 34: Os 10 maus hábitos dos desenvolvedores JSF

Apenas implementem os

métodos

Page 35: Os 10 maus hábitos dos desenvolvedores JSF

4º Mau hábito

Page 36: Os 10 maus hábitos dos desenvolvedores JSF

Implementam o próprio mecanismo de

SEGURANÇA

Page 37: Os 10 maus hábitos dos desenvolvedores JSF

SOLUÇÃO?

Page 38: Os 10 maus hábitos dos desenvolvedores JSF

Utilizem um framework especializado

Page 39: Os 10 maus hábitos dos desenvolvedores JSF

3º Mau hábito

Page 40: Os 10 maus hábitos dos desenvolvedores JSF

Paginação de registros na session

Page 41: Os 10 maus hábitos dos desenvolvedores JSF
Page 42: Os 10 maus hábitos dos desenvolvedores JSF

Uma das melhores maneiras de matar a escalabilidade da aplicação é a utilização indiscriminada da session

Page 43: Os 10 maus hábitos dos desenvolvedores JSF

SOLUÇÃO?

Page 44: Os 10 maus hábitos dos desenvolvedores JSF

Paginação sob demanda

Page 45: Os 10 maus hábitos dos desenvolvedores JSF

2º Mau hábito

Page 46: Os 10 maus hábitos dos desenvolvedores JSF
Page 47: Os 10 maus hábitos dos desenvolvedores JSF

Utilizam os componentes AJAX

de maneira INEFICIENTE

Page 48: Os 10 maus hábitos dos desenvolvedores JSF

SOLUÇÃO?

Page 49: Os 10 maus hábitos dos desenvolvedores JSF
Page 50: Os 10 maus hábitos dos desenvolvedores JSF

Regras de navegação orientada a páginas

estados

Page 51: Os 10 maus hábitos dos desenvolvedores JSF

1º Mau hábito

Page 52: Os 10 maus hábitos dos desenvolvedores JSF

1º -e o pior- Mau hábito

Page 53: Os 10 maus hábitos dos desenvolvedores JSF

JSF LIFECYCLE

Page 54: Os 10 maus hábitos dos desenvolvedores JSF

JSF LIFECYCLE

A maioria dos desenvolvedores NÃO

entendem

Page 55: Os 10 maus hábitos dos desenvolvedores JSF

JSF LIFECYCLE

SOLUÇÃO?

Page 56: Os 10 maus hábitos dos desenvolvedores JSF

http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html

Entendam o ciclo de vida

Page 57: Os 10 maus hábitos dos desenvolvedores JSF

Concluindo..

Page 58: Os 10 maus hábitos dos desenvolvedores JSF

Perguntas?

Page 59: Os 10 maus hábitos dos desenvolvedores JSF

[email protected]

http://www.rponte.com.br