Pergunta

  • Você usa analisadores de código fonte? Se sim, quais e para as quais o desenvolvimento da linguagem?
  • Você encontrá-los úteis para resolver possíveis erros em seu código? Ou são a maioria de suas advertências trivial?
  • Após uso prolongado, você encontra a sua qualidade de código a ser maior do que antes?
Foi útil?

Solução

Eu uso algumas ferramentas de análise estática em Java. FindBugs é a primeira linha de defesa, pegando um monte de erros comuns e dar feedback bastante útil. Muitas vezes vê a erros bobos de programadores cansados ??e não colocar uma carga elevada sobre o usuário.

PMD é bom para um monte de outros bugs mais Niggly, mas requer muito mais configuração. Você verá que PMDS padrões são muitas vezes por cima. Existem muitas regras que são, provavelmente benéfico em uma escala pequena, mas em última análise, não ajudam outros programadores manter seu código. Alguns dos PMD governa muitas vezes sabor de otimização prematura.

Provavelmente mais útil é a CPD suporte em PMD. Ele tenta encontrar o código que tem sido repetido em outros lugares, a fim de fazer a refatoração muito mais fácil. Correr sobre um projeto inteiro, isso realmente ajuda a determinar onde as maiores prioridades são para limpar o código e parar quaisquer violações seco.

Checkstyle também é útil, certificando-se de seus programadores estão em conformidade com algum padrão estilo de codificação. ele tem um pouco de sobreposição com PMD, mas é geralmente muito mais utilizável.

Finalmente, Cobertura é uma grande suíte de cobertura de teste. Muito útil para descobrir onde os testes de unidade são escassos, e onde você deve estar priorizando a criação de novos testes.

Oh, e eu também vindo a testar para fora Jester . Parece ser muito bom para encontrar buracos em testes, mesmo quando o código tem alguma cobertura. Não recomendado, no entanto, simplesmente porque eu não usei o suficiente, mas para testar.

Eu executar essas ferramentas tanto de dentro do Eclipse e como parte de um pacote de compilação automatizada.

Outras dicas

Para C, eu uso MEMWATCH . É realmente fácil de usar e gratuito.

Eu usei-o para encontrar muitos erros de memória no passado.

I utilizado ReSharper e MS TS (basicamente FXCop) e ambos muito útil especialmente nas seguintes áreas:

  • A identificação código morto
  • Wide Scope
  • Melhorias de desempenho (relacionados com a globalização etc.)

As recomendações não são sempre grande, mas em geral, melhorado a qualidade do código.

Eu sou um usuário de longo prazo de PC-Lint para C e C ++ e achar que é muito útil . Estas ferramentas são mais úteis quando assumindo uma base de código que você está unfamilier com. Com o tempo você bater uma lei dos rendimentos decrescentes, onde o número de novos bugs que você encontrar tende a trilha off.

Eu sempre ainda a um fiapo projeto completo em um grande lançamento.

Edit: Há uma boa lista de ferramentas relevent na Wikipedia aqui

Eu estou muito feliz com ReSharper . Não só dar pedaços de informação, enquanto a codificação (elencos por exemplo desnecessárias, aplique somente leitura e assim por diante), mas seus recursos de refatoração são excelentes para reorganizar o código muito rapidamente.

Ele não cobre tudo, então FxCop (ou similar) é uma adição digna à caixa de ferramentas. No entanto, como ReSharper dá feedback imediato, o tempo de resposta é muito boa. (Estou ciente de que FxCop pode ser executado a partir de VS, mas apenas a sua não é o mesmo imo).

Eu acho analisadores um pouco útil, eu uso o buildin para o estúdio visual (ex / analisar para c regras / c ++ e as personalizadas para .net.), Ocasionalmente uso i StyleCop e codeitright para c # principalmente para as orientações como as coisas deveriam ser.

Eu não acho que há uma ferramenta perfeita para tudo, que encontra todos os erros, mas eu acho que as ferramentas de ajuda para encontrar alguns bugs, não não rastreáveis, mas eu acredito que você iria gastar uma tonelada de tempo encontrá-los.

Sim sua qualidade de código é um pouco melhor do que antes, mas também acredito depuração o manual ainda é necessário muito. analisadores de origem não são a cura definitiva eles são um bom remédio embora. Se houvesse uma ferramenta que você acabou de executá-lo e encontrar qualquer tipo de erros e correções para você custaria milhões.

Alguns programadores que eu conheço jura que IBM Rational PurifyPlus é excelente, mas que é a sua opinião, só tinha 2-3 sessões com a ferramenta.

Mas lembre-se sempre um dos princípios básicos da programação de erros lógicos são os mais difíceis de encontrar e corrigir, de modo longas horas de depuração são inevitáveis. Um analisador de código bom combinado com testes de unidade pode operar milagres pensava.

PS. i tendem a produzir muito menos erros em C # que em C ++, alguém pode dizer que eu estou errado, mas embora eu usar c ++ mais anos do que c # eu encontrar o "código-lo e eu vou cuidar dela" abordagem gc de C # muito mais fácil do c ++ especialmente para projetos de se apressar coisa a terminar no limite de tempo / prazo, que cada projeto é como este dias ...

Eu uso StyleCop para C #. É uma ótima ferramenta para manter o estilo de código consistente que leva a uma melhor qualidade de código. Também ReSharper faz alguma análise de código, mas é bastante básico.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top