Performance: Habilite o cache de páginas do Facelets

Na primeira requisição a uma página JSF o Facelets se encarrega de carregar a página do disco, processar tag a tag e construir uma estrutura em memória. Essa estrutura é cacheada para que nas requisições seguintes à mesma página o Facelets não precise recarregar o XHTML do disco. Você já consegue imaginar a vantagem disso?

Esse cache de páginas pode diminuir significativamente o tempo de resposta a uma página JSF. Mas tem um porém que você precisa ficar ligado…

Esse cache dura somente 2 segundos por padrão. Após esse período ele é invalidado e o Facelets é obrigado a recarregar e processar a página do disco novamente. O Facelets terá que recompilar a página novamente! Mas podemos configurar esse intervalo indefinidamente, dessa forma o cache nunca será invalidado.

Para isso, você pode ler nosso post no blog dos desenvolvedores da TriadWorks: Facelets: desligue o cache de páginas em desenvolvimento

Se você configurar o cache adequadamente para o ambiente de desenvolvimento você consegue melhorar sua produtividade pois não precisará esperar aqueles segundinhos antes de teclar F5 (refresh) para ver sua modificação no browser.

Cuidado com o timezone ao trabalhar com JSF 2

Se você, assim com eu, é um desenvolvedor Web então há grandes chances de você já ter gravado data e hora errada no banco de dados por causa do fuso horário (timezone), certo? Esse problema é muito comum quando desenvolvemos sistemas para Web, mas ele parece ser um pouco mais rotineiro ao trabalhar com JSF pois ele define um fuso horário padrão para seus conversores de data: UTC.

Apesar da boa intenção do JSF, essa definição padrão acaba complicando nossa vida e pior, só percebemos esse problema em produção, quando os dados já foram corrompidos – aí já era, né!. Mas não se preocupe, existem algumas práticas com JSF que podem te ajudar a contornar de forma simples e prática:

http://blog.triadworks.com.br/jsf-conversao-de-datas-e-problemas-com-fuso-horario

Além de entender o problema e aprender a resolvê-lo você também aprende algumas boas práticas sobre como trabalhar com fuso horário na sua aplicação Web, pois gerenciar múltiplos fusos horários não é tarefa trivial.

Limpando a árvore de componentes no JSF 2.2

Um dos posts no meu blog que mais ajudou desenvolvedores foi o post sobre Limpando a árvore de componentes, pois nele discutimos como os componentes são trabalhados durante o ciclo de vida, o que evita vários problemas no dia a dia.

As técnicas para limpar a árvore que ensinei funcionam até hoje, no entanto, para nossa sorte, o expert group resolveu adicionar a funcionalidade na API e componentes no JSF 2.2. A partir de agora, a limpeza da árvore ficou mais simples e até mais performática na última versão do faces! Então o melhor a se fazer é tirar proveito desse novo recursos em nossas aplicações!

Para conhecer as mudanças na tag f:ajax e os novos métodos na API do JSF, você pode ler o post no blog dos instrutores da TriadWorks, limpando formulários e componentes no JSF 2.2, onde apresentamos todos os detalhes que você precisa saber para usar este novo recursos!