O Google Java Style, ou Estilo de Código do Google, é um guia de referência de como organizar o código fonte dentro do Google, ou seja, os princípios que todos os desenvolvedores do Google seguem. O documento é muito interessante e fornece uma ideia de como organizar seu código em um padrão de alto nível,…
Monitoramento de performance Java com VisualVM
É importante ver e entender os números e estatísticas de performance de aplicações e existem inúmeras ferramentas para monitorar aplicações para registrar seu comportamento ao longo da execução. A plataforma Java dispõe da ferramenta VisualVM, pouco conhecida, mas muito poderosa e útil. O melhor de tudo de tudo é que esta ferramenta faz parte da…
Nginx + Tomcat 7 + Java: Cluster com replicação de sessão
No post Load balancing: simulando um cluster com NGinx e Tomcat em localhost foi mostrado como configurar o NGinx para fazer o balanceamento de carga de três instâncias do Tomcat rodando na mesma máquina. Imagine que tenhamos uma aplicação que faz uso de sessão para armazenar dados do usuário e de navegação. Como essa aplicação…
Load balancing: simulando um cluster com NGinx e Tomcat em localhost
Antes de iniciar, convém entender conceitualmente o que é um cluster e o que é load balancing. Um cluster, ou agregado de computadores, é formado por um conjunto de computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído. Muitas vezes é construído a partir de computadores convencionais (personal computers), os quais são ligados…
[Resolvido] SEVERE: Request[/url] does not contain handler parameter named ‘action’
Recentemente tive que fazer manutenção em um sistema bem antigo, código de 10 anos atrás, J2EE 1.4 e Struts 1. Tive o seguinte erro ao acessar algumas páginas novas que havia desenvolvido: SEVERE: Request[/url] does not contain handler parameter named ‘action’ Depois de muito penar pela internet em vários fóruns e não encontrar solução, encontrei…
Comparação de Frameworks
Existem centenas de frameworks no mercado com o propósito de atender a outra centena de problemas. Para “ajudar” a escolher qual o melhor framework, existem outras centenas de artigos comparando os frameworks entre si. Acredito que muitas comparações disponíveis hoje são furadas. Primeiro, as comparações são feitas de forma bem superficial, utilizando alguns critérios genéricos…
Analisando a qualidade do código com o Sonar
Medir a qualidade de um projeto de software é algo complexo e envolve muitos indicadores, além disso, qualidade é muito relativa e depende do ponto de vista do observador. Um gerente financeiro pode observar a qualidade pela economia proporcionada pelo software. O usuário observa se o software atende aos requisitos funcionais, o número de falhas,…
Pesquisa em banco de dados relacional utilizando REST com Apache Solr
A edição de setembro/outubro de 2013 da revista MundoJ traz um artigo meu que trata da indexação de dados de um banco de dados relacional em um servidor de busca para serem acessados por meio de REST. [Artigo em PDF] O artigo apresenta o Apache Solr, um servidor de buscas que tem em seu core a…
Kata e TDD: um exemplo prático
Nas artes marciais, um kata é um conjunto preciso de movimentos que simula um lado de um combate. O bjetivo de um kata é atingir a perfeição, é treinar a mente e o corpo para agir em uma situação real particular, de forma que os movimentos perfeitos se tornem automáticos e esteja a disposição quando…
i18n: Internacionalização em Java
Internacionalização (Internationalization) é o processo de projetar aplicações que podem se adaptar a diferentes localidades geográficas sem a necessidade de alterar o código. O termo é abreviado para i18n devido às 18 letras entre o primeiro “i” e o último “n” do termo original em inglês “internationalization”. As características fundamentais de uma aplicação que se…