59
Os 10 (dez) maus hábitos dos desenvolvedores JSF Rafael Ponte http://www.rponte.com.br [email protected]

Os 10 maus hábitos dos desenvolvedores JSF

Embed Size (px)

DESCRIPTION

Toda tecnologia tende a trazer consigo um novo paradigma de como desenvolver partes específicas de software, contudo, algumas novas práticas nem sempre são entendidas, e algumas vezes antigas práticas permanecem dentro do novo paradigma tornando-se assim maus hábitos, e com JSF não seria diferente. Aqui será apresentado 10 discussões sobre os maus hábitos mais comuns entre os desenvolvedores JSF, hábitos encontrados não somente entre iniciantes, mas também entre alguns desenvolvedores mais experientes, e por sua vez será apresentado soluções para cada um deles.

Citation preview

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