Este é um post disponível para assinantes MVPArtigo Java Magazine 36 - Qualidade Aplicada
Artigo Publicado pela Java Magazine 36.

Qualidade Aplicada
Aperfeiçoe seu código com ferramentas e plug-ins
Conheça regras que auxiliam a escrita de código de qualidade, e podem ser verificadas automaticamente por ferramentas como PMD e Checkstyle, e recursos embutidos no Eclipse
Osvaldo Pinali Doederlein
Qualidade é um dos principais requisitos de qualquer produto – mas também o mais difícil de definir e medir. Num sistema de software, existem várias dimensões de qualidade: bugs, aderência às especificações, desempenho, facilidade de uso e outros fatores. Neste artigo vamos nos concentrar numa única dimensão: a qualidade de código, ou mais precisamente, a qualidade de artefatos individuais de código – como classes e métodos Java.
A redação da Java Magazine recebe solicitações freqüentes de práticas recomendadas de programação, ou dicas para aprender a escrever código de qualidade. Uma das melhores respostas é o já clássico livro Effective Java, de Joshua Bloch, que introduz várias regras fundamentais. Essa referência é um excelente começo, mas ainda que você aprenda centenas de regras, permanece o problema de garantir que não esquecerá de observá-las ao escrever cada linha de código – ou determinar se foram seguidas em código criado por outros desenvolvedores.
Qualquer disciplina de qualidade depende da medição contínua de indicadores de qualidade dos produtos ou processos relevantes, o que em geral é bastante trabalhoso. Como nossa preocupação é com código fonte, temos a facilidade de utilizar ferramentas que automatizam boa parte do trabalho. Estas ferramentas verificam se o código adere a padrões configurados de estilo e de uso de recursos da linguagem e APIs. São padrões que servem como indicadores de qualidade, mas que são apenas "suspeitas" de problemas potenciais (como bugs, código confuso ou ineficiente), cabendo ao desenvolvedor avaliar estas suspeitas e verificar se alguma ação corretiva é necessária.
Neste artigo, apresentaremos uma seleção de regras, enfocando as que são verificáveis automaticamente por ferramentas de qualidade de código Java. Abordaremos especificamente os programas PMD e Checkstyle e explicaremos de forma prática, com exemplos de código, o raciocínio por trás de cada regra. Visamos com isso a incentivar o leitor a justificar o esforço de revisar código existente, ou pelo menos aderir a estes critérios para código novo. É comum que regras aparentemente arbitrárias sejam capazes até de evitar bugs sutis.
Finalmente, veremos como utilizar facilidades de IDEs modernos para revisar de forma automática muitos dos problemas detectados, o que torna a adoção destas ferramentas bem mais fácil e segura.
Ferramentas de Qualidade Java
A plataforma Java conta com várias ferramentas de verificação de qualidade de código, havendo opções comerciais e open source. Entre estas últimas, destacam-se o Checkstyle e o PMD. São ferramentas que podem ser utilizadas de forma isolada na linha de comando, como tasks do Ant, como plug-ins do Maven, ou através de plug-ins de IDEs. A Figura 1 ilustra o efeito de algumas das regras de estilo e qualidade apresentados neste artigo; as advertências são geradas automaticamente quando os fontes são recompilados. Além disso, o compilador do JDT (Eclipse) também incorpora muitas validações de qualidade de código.
Este artigo procura ser independente de ferramentas específicas, utilizando nomes e descrições genéricas para as regras discutidas (ao invés, por exemplo, dos identificadores de regras do PMD). Mas para um início fácil e prático, o quadro "Usando os plug-ins para Eclipse e NetBeans" mostra como instalar, configurar e utilizar os plug-ins do Checkstyle e do PMD para estes dois IDEs.
Após esta configuração inicial, seja na forma de plug-ins ou de outra forma preferida (como via Ant), recomendo fazer um teste com algum projeto seu. É provável que a experiência inicial seja traumática: você tem um projeto que compila limpinho, sem nenhuma reclamação do compilador; ativa uma ferramenta de validação, e pumba! – milhares de advertências aparecem na janela de problemas do IDE, ou no log de build.
Veja, por exemplo, na Figura 1, o resultado do acionamento do Checkstyle e PMD (com todas as regras ativas) sobre o código de um artigo anterior desta mesma coluna: dez advertências para apenas 28 linhas de código. Multiplique isso por um projeto realista, digamos com 10 mil linhas de código, e o resultado é que muita gente decide que é trabalhoso demais revisar o código para eliminar tantas advertências – e que é arriscado mexer tanto em código já estável.
Também é comum a impressão que estas ferramentas são muito "chatas" para serem toleráveis em projetos maiores. Mas não precisa ser assim: as ferramentas de validação são muito configuráveis, nem todas as regras são obrigatórias, e vários problemas podem ser corrigidos de forma automatizada.

Figura 1. Algumas advertências geradas pelo Checkstyle e pelo PMD, com seus plug-ins para Eclipse.
Problemas detectados
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
