Criar novas regras para PMD e CHECKSTYLE

Preciso criar uma nova regra para o PMD ou CHECKSTYLE que critique lookups de variáveis dentro de loops. Alguém saberia como fazer esta nova regra? Se for possível em qual deles é melhor para a regra? Estou utilizando o WSAD 5.1. Obrigado!

Eu usaria o PMD, é simples, veja isso:

public class MyRule extends AbstractRule {

    public Object visit(ASTAllocationExpression node, Object data) {
        // Faça as verificações
    }

}

Aí você adiciona sua regra(MyRule) no XML(onde você definir suas regras) e pronto!

<rule name="AvoidLookupRule" message="Avoid lookup for variables in for statements" class="MyRule">
              <description>
                  Avoid lookup in for statements
              </description>
                <priority>3</priority>
            </rule>

É só ter esta classe no ClassPath que ele encontra…

Ah, existem AST’s para coisas específicas, como fors e whiles, dá uma fuçada…

Pessoal, ainda não consegui fazer a regra funcionar

Tipo preciso criar uma regra que critique a seguinte situação:

for(int i=0;i<5;i++){
String a=“xxx”;
}

Tentei utilizando o plugin do PMD no WSAD mas não é criticado quando
efetuo os testes. Como deveria ser?

Se alguem souber como fazer e tiver como exemplificar esses modelos para PMD e CHECKSTYLE
seria ótimo pq não temos exemplos práticos utilzando plug-ins para esse fim. Geralmente os
desenvolvedores instalam o plugin do PMD e CHECKSTYLE e apenas classificam o que já existe em
erros ou warning. Mas existem situações específicas para criar uma nova regra que não consegui utilizar.

agradeço antecipadamente.

flws.

Do ponto de vista de projeto de software, suas variáveis devem ter o menor escopo necessário (pelo menos é o que eu aprendi na faculdade da vida), portanto se você usa essa variável apenas dentro do loop declara-la dentro dele é o mais recomendado.

Antes de otimizar pequenas coisas ao longo de todo o código e com isso tornar ele menos legível e mais buguento, porque você não abre o bytecode e compara os dois cenários?

De repente, sua pergunta nem precisa ser respondida…

[quote=esmiralha]Do ponto de vista de projeto de software, suas variáveis devem ter o menor escopo necessário (pelo menos é o que eu aprendi na faculdade da vida), portanto se você usa essa variável apenas dentro do loop declara-la dentro dele é o mais recomendado.

Antes de otimizar pequenas coisas ao longo de todo o código e com isso tornar ele menos legível e mais buguento, porque você não abre o bytecode e compara os dois cenários?

De repente, sua pergunta nem precisa ser respondida…[/quote]

Ok, esmiralha tem razão, obrigado pela dica!

Pessoal, preciso nessa linha conseguir informações relacionadas a Qualidade Técnica de Software, padrões e boas práticas, já estou utilizando o PMD e CheckStyle que está muito show, agora preciso completar seguindo uma metodologia. Alguém conhece um bom conteúdo ou indicaria algo mas que realmente já viu e funciona bem? tipo XP TDD …

agradeço antecipadamente,

No meu trabalho, começamos a utilizar algumas práticas do XP (iterações curtas, design incremental, testes de unidade) há cerca de um ano e os resultados têm sido excelentes em comparação a antes, mesmo frente a algumas dificuldades não técnicas. É interessantíssimo ver que, quanto mais práticas ágeis vão se incluindo em um ambiente, melhores são os resultados. Para o próximo projeto, vamos iniciar com Scrum, TDD e integração contínua. Não me lembro de outra opção técnico/profissional minha tão feliz quanto o agilismo.

Para maiores informações em português:


http://www.improveit.com.br/br
http://blog.fragmental.com.br (não é só sobre agilismo, mas qualquer outra coisa que você encontrar por lá será igualmente útil e interessante)