Hot deploy de verdade no Eclipse e Tomcat

Você sabia que um desenvolvedor leva em média 1h/dia olhando pro console do Eclipse esperando o Tomcat subir com a aplicação? Pois é, isso acontece pois sempre que alteramos uma classe na aplicação o plugin WTP do Eclipse é obrigado a recarregar todo o contexto da aplicação no Tomcat, o que leva em torno de 30s na maioria das aplicações!

Para diminuir este tempo de espera e ter uma melhor produtividade, nós podemos habilitar o hot deploy de classes no WTP do Eclipse! Dessa forma, quando modificamos uma classes Java o Eclipse se encarrega de atualizá-la no Tomcat sem a necessidade de recarregar todo o contexto, semelhante ao que ocorre com JSPs, CSS, JavaScripts e outros!

Com algumas poucas configurações no Eclipse você já pode se beneficiar do hot deploy de classes e ter uma semana muito, mas muito mais produtiva!

6 hábitos com Hibernate para melhorar a performance da sua aplicação

Em Setembro tive a oportunidade de palestrar sobre Hibernate Efetivo em Maceió-AL a convite do fundador do ALJUG (Grupo de Usuários Java de Alagoas), Miguel Lima. Esta palestra também foi ministrada no evento do QCONSP 2012.

A idéia da palestra é discutir 6 hábitos/práticas que podemos ter com Hibernate para melhorar a performance e escalabilidade da aplicação. Hábitos simples como configurar um pool de conexões e até hábitos mais delicados, como configurar o cache de segundo nível e maneiras de lidar com o pior problema de performance ao trabalhar com Hibernate: Select N+1.

Para não deixar o assunto apenas na palestra e nos slides, acabamos blogando sobre as 6 práticas no blog da TriadWorks, onde fizemos um pequeno resumo de cada prática para ajudar desenvolvedores iniciantes e experientes a lidarem com estes problemas que são tão comuns e prejudiciais em muitos sistemas.

Qual controle transacional usar com Spring: AOP ou @Transactional ?

Sempre que iniciamos um novo projeto com Spring precisamos decidir qual estratégia de controle transacional utilizar. Normalmente acabamos optando pelo controle transacional declarativo em vez do programático, no entanto, temos ainda que decidir se iremos seguir uma das estratégias: AOP ou @Transactional.

Mas quais os benefícios de uma abordagem ou de outra? Quais as desvantagens de utilizar AOP? E a anotação @Transactional? Para sanar estas dúvidas, o blog dos desenvolvedores da TriadWorks acaba de publicar mais um artigo, com o tema Controle transacional declarativo com Spring: AOP ou @Transactional. O post apresenta os prós e contras de cada abordagem, o que pode ajudar arquitetos e desenvolvedores mais seniores a tomar uma decisão mais consciente!

Eu já trabalhei com as duas abordagens, e por esse motivo prefiro trabalhar com o uso da anotação @Transactional, pois o código fica mais explicito e ainda consigo fazer o desenvolvedores da equipe pensarem sobre o fluxo das transações dentro da aplicação. E você, qual abordagem prefere?