terça-feira, 25 de outubro de 2011

Onde cada Managed Bean entra na arquitetura MVC

Onde cada Managed Bean entra na arquitetura MVC (Model-View-Controller)

[1] mostra as diferenças entre os MBs:
  • Model Managed Bean
  • Backing Managed Bean
  • Controller Managed Bean
  • Support Managed Bean
  • Utility Managed Bean

É muito importante ler esse link abaixo, entendendo o o baixo acoplamento e a alta coesão entre os MBs e a utilização real do MVC e seus benefícios.

[1] http://blog.icefaces.org/blojsom/blog/default/2009/04/23/Making-distinctions-between-different-kinds-of-JSF-managed-beans/

E aproveitando...
http://www.rponte.com.br/2009/08/27/managed-beans-nao-complique-simplifique/

segunda-feira, 24 de outubro de 2011

sexta-feira, 21 de outubro de 2011

Baixo Acoplamento e Alta Coesão - Regras que valem ouro!

Use e abuse dos melhores tipos de acoplamento e coesão!

Acoplamento
  • Inter-dependência entre módulos
  • Tipos (do melhor ao pior)
    • Mensagem: interface pública para troca de mensagens
    • Dados: módulos compartilham dados via parâmetros
    • Selo: dados estruturados subutilizados
    • Controle: módulo envia comandos para o outro
    • Externo: compartilham um formato de dados externo, protocolo de comunicação ou interface de dispositivo
    • Comum: dados globais
    • Conteúdo: um módulo depende da funcionalidade interna do outro, um muda o outro tem que mudar também
Coesão
  • Princípio de ouro para ser mantido no projeto
  • Tipos (do melhor ao pior)
    • Funcional: única tarefa
    • Sequencial: saída de um módulo é entrada em outro módulo
    • De comunicação: operações unidas sobre os dados
    • Procedural: procedimentos de algoritmos
    • Temporal: dependência de tempo
    • Lógico: depende de variáveis de condições lógicas
    • Coincidente/acidental: nada 
Referências
http://c2.com/cgi/wiki?CouplingAndCohesion

domingo, 16 de outubro de 2011

"Primefaces is not defined" error

At starting with Primefaces, the error "Primefaces is not defined" happens. It's because Primefaces needs h:head JSF tag in the page.

To fix, just do that:

  1. How can I fix the "PrimeFaces not found" javascript error? Make sure to have h:head tag in your page.

http://www.primefaces.org/faq.html

Using Facelets and CSS

Start rightly:


Facelets fits JSF like a glove
http://www.ibm.com/developerworks/java/library/j-facelets/

30 CSS Best Practices for Beginners

http://net.tutsplus.com/tutorials/html-css-techniques/30-css-best-practices-for-beginners/

sábado, 15 de outubro de 2011

Configurando Tomcat 7 no Eclipse Indigo

  • Baixe o Tomcat em
  • Em Server Locations
    • Selecione a opção para que o Eclipse controle o Tomcat
      • "Use Tomcat instalattion (takes control of Tomcat installation)
  • Altere o Deploy Path para o diretório webapps dentro da instalação do Tomcat, assim o projeto vai corretamente para a pasta de auto deploy do Tomcat. 
  • Caso seu projeto seja em JSF, garanta que os diretórios estejam de acordo
    • Pasta do Projeto
      • WEB-INF
        • lib
          • (jars e afins da aplicação)
        • faces-config.xml
        • web.xml
      • index.jsp (na pasta raiz)



sexta-feira, 14 de outubro de 2011

Configurando as Tags JSF 2.0 em arquivos .XHTML com Facelets no Eclipse


Ao utilizar .JSPX e .XHTML para JSF 2.0, o Facelets obriga que seja utilizado o .XHTML [1], porém o Eclipse não completa as Tags JSF no .XHTML. Mesmo com a tentativa em [2], configurando no Eclipse que .XHTML deve informar as Tags JSF, não deu certo. Um bug no Eclipse foi aberto para isso [3], e num comentário havia uma solução [4]. E finalmente consegui utilizar as Tags JSF em arquivos XHTML! Utilizei o Eclipse Indigo 3.7.1.


Steps overview: [4]
[...]
2) Create a Dynamic Web Project. Apply the JSF 2.0 facet.
3) Create a XHTML page. Open it in the Web Page Editor (optional)
4) Use content assist to add the namespace to the JSF 2.0 libs. See attachment,
CA-Namespace.png 
5) Use  content assist to add a JSF tag.[...]
[1] Facelets Tag Completion in Eclipse
http://www.mojavelinux.com/blog/archives/2006/12/facelets_tag_completion_in_eclipse/
[2] Eclipse Galileo - JSF Content Assist for xhtml files
http://www-02.imixs.com/roller/ralphsjavablog/entry/eclipse_galileo_jsf_content_assist
[3] Bug 314098 - JSF Content Assist for xhtml files
https://bugs.eclipse.org/bugs/show_bug.cgi?id=314098
[4] Bug 314098 - JSF Content Assist for xhtml files - Comment 4
https://bugs.eclipse.org/bugs/show_bug.cgi?id=314098#c4

segunda-feira, 10 de outubro de 2011

quarta-feira, 5 de outubro de 2011

Just one cup of coffee a day

Praticamente impossível não referenciar o café...



terça-feira, 4 de outubro de 2011

JSF 1.2 and JSF 2.0 Tag Library and API - Javadoc

It's useful for JSF development:

Javadoc - JSF 1.2 Tag Library
http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/index.html

Javadoc - JavaServer Faces API
http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/1.2_MR1/docs/api/index.html

Javadoc - JSF 2.0 Tag Library
http://download.oracle.com/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/

Tags from the book Core JavaServer Faces by David Geary and Cay Horstmann
http://www.horstmann.com/corejsf/jsf-tags.html

Interaction Design Pattern Library

Diversos padrões de interfação de interfaces web/desktop, muito interessante!

Interaction Design Pattern Library
http://www.welie.com/patterns/

segunda-feira, 3 de outubro de 2011

Web Interfaces Patterns

Material muito interessante sobre padrões Web de Interfaces de Usuário.

12 Standard Screen Patterns
http://designingwebinterfaces.com/designing-web-interfaces-12-screen-patterns

Logo Designing Web Interfaces
http://designingwebinterfaces.com/explore

30 Essential Controls
http://designingwebinterfaces.com/essential_controls

15 Common Component Patterns
http://designingwebinterfaces.com/15-common-components

Apesar desse material de outro livro, irei ler o livro
Designing Web Navigation - Optimizing the User Experience
http://shop.oreilly.com/product/9780596528102.do

domingo, 2 de outubro de 2011

JUnit 4 vsTestNG


Creio que é hora de começar a usar TestNG...

JUnit 4 Vs TestNG – Comparison

In pursuit of code quality: JUnit 4 vs. TestNG

7+-2 - Sete Mais ou Menos Dois não se deve utilizar como regra em menus!

Já ouviram falar na regra 7+-2? Principalmente para a organização de menus...

Pois bem, eu também.

Além de ouvir há uns anos atrás, li novamente no livro e-Usabilidade(1) de Simone Bacellar Leal Ferreira e Ricardo Rodrigues Nunes.

George Armitage Miller foi quem sugeriu que a mente humana memoriza 7 +- 2 segmentos de informação(2), e isso não tem a ver com organização de menus! Isso é um engano mantido por tempos, pois os usuários não precisam memorizar todas as opções contidas em cada menu!

Qualquer dúvida a essa relação incorreta, leia no livro Design de Interação: Além da Interação Homem-Computador (3) (título original: Interaction Design: beyond human-computer interaction). Lá tem uma página completa falando sobre essa relação 7+-2.

(1) http://www.ltceditora.com.br/e-Usabilidade/
(2) http://www.psych.utoronto.ca/users/peterson/psy430s2001/Miller GA Magical Seven Psych Review 1955.pdf
(3) http://www.id-book.com/