Pergunta

Gostaria de obter uma rápida sensação de quanto "copiar e colar" codificação temos, existem muitas ferramentas para C# / Java para verificar esse tipo de coisa.Existem ferramentas que funcionam bem com VB.NET?

(Eu vi que parece a muitos de código repetido, mas desejo de obter algum número para me ajudar a fazer um caso para classificar para fora)


Atualização sobre o progresso.

Eu apenas tentei Símia.

Clone Médico não suporta VB.NET (só C# e VB 6 e muitas outras)
Outubro de 2010:VB.net adicionado idiomas suportados pelo CloneDR

Clone Detective para o Visual Studio só suporta C#

SolidSDD - Fonte De Duplicação De Código Detector De só suporta C, C++, C# e Java

DuplicateFinder é open source, mas o contrário parece muito correspondência como Símia, e.g ele só funciona em linhas de texto

ConQAT - Kit De Ferramentas De Avaliação De Qualidade Contínua parece ter um clone detector, que trabalha para VB.NET (não tentei ainda)

Policial é um pouco como o FXCop e tem um AvoidCodeDuplicatedInSameClassRule regra geral, este parece muito promissor, pois evita o problema de trabalho, no nível de texto. Apenas tentei isso, ele é a melhor solução até agora, pena que não procura com um escopo maior.


Antes de afirmar que esta questão é uma duplicata, por favor, verifique se o outro pergunta endereços VB.NET, como um monte de ferramentas que funcionam bem para C# não funciona tão bem para VB.NET.(No entanto, não me surpreenderia se essa pergunta é um verdadeiro duplicado)

Foi útil?

Solução 9

Consulte a pergunta para as ferramentas que eu encontrei.

Outras dicas

CodeRush 11.2 introduziu um novo recurso chamado de Detecção de Duplicados e Consolidação (DDC)

http://community.devexpress.com/blogs/markmiller/archive/2011/11/29/duplicate-detection-and-consolidation-in-coderush-for-visual-studio.aspx

Certifique-se de verificar para fora as opções para fazer isso, bem, como você pode executá-lo quando tantas linhas são alteradas, certamente, o tempo passou, etc.

Eles já postei algumas decente vídeos sobre o DevExpress site também.

[Eu sou o autor de CloneDR ("Clone Médico").]

CloneDR é parametrizada por uma gramática para a linguagem de programação em questão.Assim, não apenas a correspondência de linhas.Em vez disso, ele pode encontrar clones que são sintaticamente bem formada, com variações que são mais do que apenas o identificador de alterações, independentemente de onde eles parar ou iniciar em uma linha.

O mecanismo no qual CloneDR repousa, O DMS Software, Reengenharia Toolkit" é uma ferramenta para análise de sistemas de grande dimensão em qualquer linguagem de programação, e utiliza uma linguagem descrições a unidade de análise.DMS tem uma grande variedade de língua front-ends já disponíveis.

Atualmente ele tem VBScript e VB6 (como dialetos do "Visual Basic").Ele não tem VB.net, mas que seria muito simples de fazer, dada a DMS infra-estrutura e nossa experiência com muitos outros idiomas.

Assim, CloneDR poderia fazer isso muito bem, com um pouco de esforço da nossa parte.

EDIÇÃO de outubro de 2010:VB.net adicionado como uma linguagem CloneDR pode processar.

Atomiq suporta vb.net entre outras línguas, e os resultados são muito bem apresentados.

JetBrains publicado conjunto de ferramentas do console Resharper Ferramentas De Console para executar a duplicação de análise.Uma vez instalado, ele permite que você faça a mesma análise TeamCity e gerar duplicatas relatório localmente e até mesmo incluir a duplicatas a pesquisa em processo de compilação personalizada com o MSBuild.Esta ferramenta faz exatamente o que você precisa.Mais detalhes você pode encontrar aqui no JetBrains post de blog

Tente Símia:

Símia (Similaridade Analyser) identifica a duplicação em Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy código fonte e até mesmo arquivos de texto sem formatação.

Uma vez eu vi uma impressionante demonstração do Padrão de Visão;o seu CP Mineiro pode ser o que você está procurando: http://patterninsight.com/products/cp-miner.php.Parece ser independente de linguagem, apesar de eu não conseguia encontrar nada explícito sobre outras línguas que não o C/C++.

Arregaçar as mangas e escrever seu próprio analisador para usá-lo com CPD?

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