DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Java Magazine 36 - Qualidade Aplicada

Artigo Publicado pela Java Magazine 36.

Esse artigo faz parte da revista Java Magazine edição 36. Clique aqui para ler todos os artigos desta edição

jm36.jpg

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.

 

image002.jpg
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
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Osvaldo Pinali Doederlein

é Mestre em Engenharia de Software Orientado a Objetos e Arquiteto de Tecnologia da Visionnaire Informática, trabalhando em projetos de software e prospecção tecnológica.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03