Vagrant: meu ambiente de desenvolvimento é seu ambiente

Uma das ferramentas que mais usei durante os serviços de consultoria que prestei pela TriadWorks foi sem dúvida o Vagrant. Com ele era muito fácil criar e configurar máquinas virtuais (VM) onde eu customizava para cada projeto ou equipe na qual estivesse trabalhando, dessa forma eu evitava sujar meu MacOSX com servidores e aplicativos temporários.

E não somente isso, eu conseguia compartilhar esse mesmo ambiente (VM) com o restante da equipe. Eles não tinham que fazer nada se não executar um comando do Vagrant nas suas máquinas, estejam elas rodando Windows, Linux ou MacOSX.

Pois bem, esta semana eu escrevi sobre o Vagrant no blog dos instrutores da TriadWorks, onde ensino o passo a passo de como você pode configurar o Vagrant na sua máquina, além de ensinar como você, em questões de minutos, pode configurar um servidor Java com Tomcat 7:

 Vagrant: crie e configure seu ambiente de forma automatizada

Outra grande vantagem da ferramenta é a possibilidade de configurar servidores de produção ou homologação antes mesmo de colocar a aplicação no ar. Deste modo eu posso fazer diversos testes antes mesmo de solicitar ao pessoal da infra do cliente uma máquina para deployar a aplicação. Se durante meus testes eu bagunçasse ou corrompesse a VM eu poderia destruí-la e começar tudo novamente sem qualquer medo!

No final eu acabo com um ambiente melhor configurado e um script para replicar a mesma configuração do ambiente em questões minutos!

Sensacional, não?

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.