Есть ли автоматический инструмент для поиска СУХОЙ вашей базы кода?

Я сильный сторонник Принцип DRY:

Каждая часть знания должна иметь одно, недвусмысленное, авторитетное представление внутри системы.

Существуют ли какие-либо инструменты, которые могут тестировать базу кода для количества СУХОЙ, и как количественные, так и конкретные примеры для коррекции?

Ответ 1

Simian

Simian (анализатор сходства) идентифицирует дублирование в Java, С#, C, С++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy source кода и даже текстовых файлов. Фактически, simian можно использовать на любом читаемые человеком файлы, такие как ini файлы, дескрипторы развертывания, вы назовите его.

Simian запускается изначально в любой среде .NET 1.1 или выше и на любой виртуальной машине Java 5 или выше, что означает, что Simian можно запустить практически на любом оборудовании и любой операционной системе, на которую вы можете надеяться. Как время выполнения Java, так и .NET включены как часть распределение.

Ответ 2

PMD Копировать прошлый детектор (CPD)

Дублирующий код может быть трудно найти, особенно в большом проекте. Но Детектор копирования/вставки PMD (CPD) может найти его для вас!

Обратите внимание, что CPD работает с Java, JSP, C, С++, Fortran и PHP-кодом.

Вы можете запустить его в командной строке, есть задача ANT и плагин Eclipse.

Ответ 3

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

У него есть экземпляры для многих lanuages: C, С++, С#, Java, JavaScript, PHP, COBOL, Python, PLSQL,... Он обычно находит 10-15% дублированный код в системах с серьезным размером (например, 100K SLOC и выше). На веб-сайте есть примеры отчетов для многих языков, и вы можете загрузить пробную копию.

Ответ 4

Клон-детектив для Visual Studio

Clone Detective - это интеграция с Visual Studio, которая позволяет вам анализировать проекты С# для исходного кода, который дублируется где-то еще. Наличие дубликатов может легко привести к несоответствиям и часто является индикатор для слабо выраженного кода.

enter image description here