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!

Criando anotações customizadas com Spring

Não é incomum que com o passar do tempo nossas classes fiquem repletas de anotações de diferentes categorias do seu framework IoC/DI, como Spring ou CDI. Estas anotações vão desde controle transacional, segurança, monitoramento e até logging. Se não tomarmos cuidado nós acabamos com muita duplicação de código de metadados e pouca legibilidade.

Para resolver isso, desde o Spring 3.0 nós podemos criar nossas próprias anotações com um significado mais próximo da nossa arquitetura ou mesmo negócio. Essa técnica de criar anotações com semântica é chamado de Stereotypes, ou do português, estereótipos.

Entender bem o conceito de estereótipos e saber estendê-lo é muito importante para arquitetos e desenvolvedores sêniors que almejam ter um melhor controle de como as classes da aplicação são registradas no container do Spring e procuram uma melhor manutenção do código a médio-longo prazo.

Named Queries vs Queries Dinâmicas

É muito comum a discussão entre os desenvolvedores de uma equipe sobre a forma de como as consultas JPQL serão organizadas na aplicação. Uns preferem tê-las dentro das entidades através de Named Queries, enquanto outros dentro dos DAOs com o uso de Queries Dinâmicas.

Essa decisão nem sempre é simples de ser tomada, no entanto ela é muito importante, pois envolve organização do código e comunicação entre os membros da equipe. Pensando nisso, postamos no blog da TriadWorks os prós e contras de ambas as abordagens, dessa forma você, desenvolvedor ou arquiteto, pode tomar melhores decisões.

Eu particularmente prefiro ter minhas consultas dentro dos DAOs, pois acho mais lógico isolá-las nessa camada e mais prático para dar manutenção. Além disso, ainda posso tirar proveito do hot deploy enquanto desenvolvo a aplicação e faço pequenas correções sem reiniciar o servidor de aplicação.