Pergunta

Como você definiria "código indesejado"?


Editar:

IMHO, Qualquer membro do código com 0 membros chamadas activo (marcada de forma recursiva) é o código indesejado. (Funções, métodos, propriedades variáveis ??são membros)

Foi útil?

Solução

0 chamadas ativas e há possibilidade de uso no futuro próximo. E eu prefiro não comentar nada na necessidade caso eu por ele mais tarde desde que eu uso SVN (controle de origem).

Outras dicas

Aqui está a minha definição de código indesejado :

  • Um código que não executa é um peso morto. (A menos que seja um [malicioso] payload para o seu código real, mas isso é outra história: -))
  • Um código que se repete várias vezes aumenta o custo do produto.
  • Um código que não pode ser regressão testado está aumentando o custo do produto também.

Você pode remover esse código ou refatorar-lo, mas você não quiser mantê-lo, pois é ao redor.

Como você disse na outra linha, código que não é usado em qualquer lugar em tudo é muito bonito indesejada. Quanto à forma de encontrá-lo eu sugiro FindBugs ou CheckStyle se você estivesse usando Java, por exemplo, uma vez que estas ferramentas de verificação para ver se uma função é em qualquer lugar e marcas utilizadas lo como não-utilizada se não é. Muito agradável para se livrar do peso desnecessário.

Bem, depois de pouco tempo pensando sobre isso eu vim com estes três pontos:

  • pode ser código que deve ser reformulado
  • pode ser um código que não é chamado mais nenhuma (sobras de versões anteriores)
  • pode ser um código que não se aplica ao seu estilo de guia e caminho-de-codificação

Eu aposto que há muito mais, mas, é assim que eu definir código indesejado.

Em Java eu ??iria marcar o método ou classe com @deprecated.

Qualquer PRIVATE membro do código com nenhum membro de chamadas activo (marcada de forma recursiva). Caso contrário, você não sabe se o seu código não é utilizado fora de sua análise escopo.

Algumas coisas já estão postados mas aqui é outra: Funções que quase fazem a mesma coisa. (Apenas uma pequena mudança variável e, portanto, todo as funções é cópia colado e essa variável é alterado)

Normalmente eu dizer ao meu compilador para ser tão irritantemente barulhenta quanto possível, que picks 60% de coisas que eu preciso examinar. funções não utilizados que são meses de idade (após verificar com o VCS) geralmente se deposto, salvo quando o autor me diz quando eles vão realmente ser usado. Coisas faltando protótipos também é imediatamente suspeito.

Eu acho que tentando implementar a limpeza da casa automatizado é como tentar fazer um dispositivo USB que garante que você 'segurança' play Russian Roulette .

A parte mais difícil para verificação são componentes adicionados ao sistema de compilação, poucas pessoas percebem esses e kludges não utilizados são deixados para reunir musgo.

Além disso, eu normalmente querem o código, eu só quero o seu autor refatorar um pouco e fazer o seu estilo o mesmo que o resto do projeto.

Outra ferramenta útil é doxygen , o que não ajuda você (visualmente) ver as relações na árvore fonte. . no entanto, se o seu conjunto por não extrair símbolos / objetos estáticos, a sua não vai ser muito cuidadosa.

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