Comment détecter les copier-coller dans un projet?

Julien on jan 31st 2009

Parceque rare sont les équipes ou l'ensemble des développeurs applique le principe de ne jamais répéter du code (DRY!), il peut être utile d'avoir un petit outil sous la main pour détecter les éventuelles duplications au sein d'une solution.
En effet, tout code dupliqué pose des problèmes de maintenabilité accrus. Dans la majorité des cas on modifiera le code en question à un endroit, mais on oubliera systématiquement la copie qui se trouve ici ou là...

Simian
est un outil qui permet d'avoir rapidement un apperçu de l'étendu des dégats en un temps record (20 secondes pour 200 000 lignes de code). Il s'intégre directement dans visual studio en tant qu'"Outil externe" et sa configuration se fait en à peine 2 minutes.

Autrement dit, il suffit de suivre les instructions suivantes :

  1. Télécharger et installer Simian
  2. Dans Visual Studio, aller dans "Outils" => "Outils externe..."
  3. Cliquer sur "Ajouter"
  4. Utiliser les paramètres suivants (sans les guillemets) :Titre : "Simian - Solution" (modifier par ce que vous arrange)
    Commande : Chemin ou vous Simian est installé
    Arguments : "-formatter=vs -excludes=**/*.Designer.cs **/*.cs"
    Répertoire initial : "$(SolutionDir)"
  5. Répéter la même opération 2 fois avec les paramètres suivants :Titre : "Simian - Projet courant"
    Arguments : "-formatter=vs -includes=**/*.cs -excludes=**/*.Designer.cs $(ProjectDir)"
    Répertoire initial : "$(ProjectDir)"

    Titre : "Simian - Fichier courant"
    Arguments : "-formatter=vs $(ItemFileName) $(ItemExt)"
    Répertoire initial : "$(ItemDir)"

  6. Il n'y a plus qu'a aller dans le menu "Outils" pour lancer l'analyse!

A noter que vous pouvez double cliquer sur les lignes du résultat de l'analyse pour naviguer directement vers le code en question.

Filed in outils | One response so far

One Response to “Comment détecter les copier-coller dans un projet?”

  1. GuiGau oct 28th 2009 at 06:28 1

    Bonjour et Merci !

    Un grand merci, oui.
    Je viens de récupérer du code écrit par une SSII que je ne nommerai pas.
    Leurs copier-coller m’ont fait hurler (à coups de blocs de 100, 200, voire 500 lignes… no comment).

    Mais grâce à l’outil dont vous parlez, plus un peu de refactorisation, je suis en train de réussir à en faire quelque chose de propre…

    Encore merci et bonne fin de journée.

Trackback URI | Comments RSS

Leave a reply