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.

Tagged with: , , , , , , , ,
Posted in Boas Práticas, Desenvolvimento de Software, Hibernate, Java, JEE, JPA

FacesUtils: sua classe de utilidades

Um boa prática quando trabalhamos com JSF é tentar manter nossos managed beans o mais simples possível, de tal forma que ele expresse apenas os dados e eventos das nossas páginas. Uma das maneiras de obter isso é isolando a API do próprio JSF através de uma classe de utilidades, também conhecida como FacesUtils.

No blog dos desenvolvedores e instrutores da TriadWorks nós abordamos o assunto e levantamos bons motivos do porquê você precisa ter uma classe desse tipo no seu projeto! Na FacesUtils normalmente encontramos métodos para lidar com a árvore de componentes, busca e renderização de componentes, navegação entre páginas e muito mais.

Vale muito a pena a leitura!

Tagged with: , , , , , , , , ,
Posted in Boas Práticas, Desenvolvimento de Software, Java, JEE, JSF, JSF2, web

Criando e gerenciando objetos de terceiros com Spring e @Bean

Umas das premissas mais importantes quando trabalhamos com algum framework IoC/DI, como Spring ou CDI, é delegar a criação e o gerenciamento dos objetos para seus containers. Isso permite que nosso código seja mais flexível e menos acoplado a lógica de criação de objetos complexos ou de terceiros.

Assim como a anotação @Produces do CDI, o Spring desde sua versão 3.0 nos permite obter o mesmo comportamento através da anotação @Bean. A idéia é a mesma, criar objetos caros, complexos ou de outros frameworks e registrá-los no container para que eles possam ser injetados como dependências noutras classes do sistema.

Escrevi um artigo no blog da TriadWorks sobre o assunto com mais detalhes sobre a anotação @Bean e suas vantagens. Vale a pena a leitura e uso da prática!

Tagged with: , , , , , , , , ,
Posted in Boas Práticas, Desenvolvimento de Software, Java, JEE, Spring