Какие-либо инструменты для проверки дублирования кода VB.NET? - PullRequest
13 голосов
/ 15 февраля 2010

Я хотел бы получить быстрое представление о том, сколько у нас есть «копируй и вставляй» кодирование, для C # / Java существует множество инструментов, позволяющих проверить этот тип вещей. Есть ли такие инструменты, которые хорошо работают с VB.NET?

(я видел много похожего кода, но хотел бы получить какое-то число, чтобы помочь мне разобраться в этом)


Обновление о прогрессе.

Я только что попробовал Simian.

Доктор клонов не поддерживает VB.NET (только C # и VB 6 и многие другие)
Октябрь 2010: VB.net добавлен в языки, поддерживаемые CloneDR

Детектор клонов для Visual Studio поддерживает только C #

SolidSDD - детектор дублирования исходного кода поддерживает только C, C ++, C # и Java

DuplicateFinder с открытым исходным кодом, но в остальном выглядит очень похожим на Simian, например, он работает только с строками текста

ConQAT - набор инструментов для непрерывной оценки качества , кажется, имеет клон-детектор, который работает для VB.NET (еще не пробовал)

Жандарм немного похож на FXCop и имеет правило AvoidCodeDuplicatedInSameClassRule , это выглядит очень многообещающе, поскольку позволяет избежать проблемы работы на уровне текста. Только что попробовал, это лучшее решение на данный момент, жаль, что он не ищет с большим размахом.


Прежде чем утверждать, что этот вопрос является дубликатом, проверьте, что другой вопрос адресован VB.NET , так как многие инструменты, которые хорошо работают для C # , не работают так хорошо для VB.NET . (Однако меня не удивит, если этот вопрос будет дубликатом)

Ответы [ 9 ]

3 голосов
/ 20 декабря 2011

CodeRush 11.2 представила новую функцию, которая называется Duplicate Detection and Consolidation (DDC)

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

Не забудьте также проверить его параметры, поскольку вы можете запустить его, когда столько строк изменено, определенно прошло время и т. Д.

Они также разместили несколько достойных видео на сайте DevExpress.

1 голос
/ 06 мая 2015

Опубликованный набор консольных инструментов JetBrains Resharper Console Tools для запуска анализа дублирования. После установки он позволяет выполнять тот же анализ, что и TeamCity, и создавать отчеты о дубликатах локально и даже включать поиск дубликатов в пользовательский процесс сборки с MSBuild. Этот инструмент делает именно то, что вам нужно. Более подробную информацию вы можете найти здесь на JetBrains сообщение в блоге

1 голос
/ 16 февраля 2010

[Я автор CloneDR ("Доктор Клон") .]

CloneDR параметризован полной грамматикой для рассматриваемого языка программирования. Так что это не просто соответствует линии. Скорее, он может находить клоны, которые синтаксически правильно сформированы, с вариациями, которые представляют собой нечто большее, чем просто изменения идентификатора, независимо от того, где они останавливаются или начинаются в строке.

Движок, на котором покоится CloneDR, DMS Software Reengineering Toolkit " - это инструмент для анализа крупномасштабных систем на любом языке программирования и использует описания языков для управления анализом. DMS имеет широкий спектр языковые интерфейсы уже доступны.

В настоящее время он имеет VBScript и VB6 (как диалекты «Visual Basic»). У него нет VB.net, но это было бы довольно просто сделать, учитывая инфраструктуру DMS и наш опыт работы со многими другими языками.

Итак, CloneDR справится с этой задачей без особых усилий с нашей стороны.

РЕДАКТИРОВАТЬ Октябрь 2010: VB.net добавлен в качестве языка, который может обрабатывать CloneDR.

1 голос
/ 18 августа 2011

Atomiq поддерживает vb.net среди других языков, и результаты хорошо представлены.

1 голос
/ 15 февраля 2010
0 голосов
/ 22 октября 2010

Однажды я увидел впечатляющую демонстрацию Pattern Insight; его CP Miner может быть тем, что вы ищете: http://patterninsight.com/products/cp-miner.php. Кажется, что он не зависит от языка, хотя я не мог найти ничего явного о языках, кроме C / C ++.

0 голосов
/ 10 марта 2010

См. Вопрос об инструментах, которые я нашел.

0 голосов
/ 17 февраля 2010

Закатайте рукава и напишите свой собственный парсер , чтобы использовать его с CPD ?

0 голосов
/ 15 февраля 2010

Попробуйте Simian :

Simian (Similarity Analyzer) определяет дублирование в Java, C #, C, C ++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, исходном коде Groovy и даже в текстовых файлах.

...