language-agnostic refactoring dry code-reuse

language agnostic - ¿Existe? ¿Buscador de código repetido?



language-agnostic refactoring (7)

Actualmente estoy usando Duplicate Finder . Funciona en cualquier archivo de texto, y lo he estado usando en mis proyectos de C #, con mucho éxito. Es línea de comando, así que lo he integrado en mis procesos de compilación.

En un futuro cercano, heredaré un proyecto algo grande. He estado haciendo algunas pequeñas actualizaciones recientemente, y noté que algunas partes podrían usar algunas refactorizaciones, ya que hay métodos que realizan la misma operación con una pequeña diferencia.

Me preguntaba si existe una herramienta que tome un montón de código fuente y encuentre bloques de código similares para que puedan ser identificados para una posible refactorización. Sería genial si hubiera presente una búsqueda borrosa, de modo que pudiera identificar una operación similar (aparte de las tiradas de código repetidas al pie de la letra).

No espero que el programa refactorice el código en sí, solo identifique la posible repetición.

Mi plataforma es C #, pero cualquier solución sería útil



Nunca lo he usado, pero Simian podría funcionar para ti

Simian (Analizador de similitud) identifica la duplicación en Java, C #, C, C ++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, código fuente Groovy e incluso archivos de texto sin formato. De hecho, simian se puede utilizar en cualquier archivo legible por humanos, como archivos ini, descriptores de implementación, lo que sea.


CPD funciona en el nivel de token, por lo que debería estar bien con C #. Tiene algunos mecanismos para factorizar nombres de variables y otros identificadores también.


http://www.codeplex.com/CloneDetectiveVS

"Clone Detective es una integración de Visual Studio que le permite analizar proyectos de C # para código fuente que está duplicado en otro lugar".

Están sucediendo muchas cosas, visualmente, cuando lo lanzas en un proyecto con mucha duplicación de código. Si eso se combina con el uso de Clone Detective por primera vez, puede ser un poco abrumador al principio.

Realmente recomiendo esta herramienta. Es excelente.


Simian es un producto que afirma analizar el código fuente en varios idiomas, incluido C #. Nunca lo he usado, así que no puedo responderlo en absoluto. Es gratis para uso no comercial y se lo venderán a usted para proyectos comerciales.