Article de reference

Code dupliqué

En programmation informatique , le code dupliqué désigne les multiples occurrences d'un même code source dans une base de code . Un fragment de code dupliqué est également appel...

En programmation informatique , le code dupliqué désigne les multiples occurrences d'un même code source dans une base de code . Un fragment de code dupliqué est également appelé clone de code , et le processus de recherche de ces clones dans le code source est appelé détection de clones . Le code dupliqué présente de nombreux inconvénients .

La classification des fragments comme dupliqués peut être subjective. Les fragments très courts instruction les espaces , les commentaires et les noms de variables . Même des fragments fonctionnellement équivalents peuvent être classés comme dupliqués.

maintenir car, en cas de mise à jour, il existe un risque que seules certaines parties dupliquées soient corrigées, laissant les autres inchangées. Lorsqu'une vulnérabilité est dupliquée, elle persiste dans la copie même après correction. La refactorisation visant à éliminer le code dupliqué peut améliorer de nombreux indicateurs logiciels, tels que le nombre de lignes de code , la complexité cyclomatique et le couplage . Il peut en résulter un temps de compilation plus court, une charge cognitive réduite , une diminution des erreurs humaines et une réduction des oublis ou des négligences dans le code.

Cependant, toute duplication de code ne peut être refactorisée. Les clones peuvent constituer la solution la plus efficace si le langage de programmation offre des abstractions inadéquates ou excessivement complexes, notamment s'il est pris en charge par des techniques d'interface utilisateur telles que l'édition simultanée . De plus, le risque de casser le code lors d'une refactorisation peut être supérieur aux avantages en termes de maintenance. Une étude de Wagner, Abdulkhaleq et Kaya a conclu que, même si un travail supplémentaire est nécessaire pour maintenir la synchronisation des doublons, si les programmeurs concernés sont conscients de l'existence du code dupliqué, le nombre d'erreurs n'est pas significativement plus élevé qu'avec du code non dupliqué. programmant par copier-coller , une section de code est dupliquée dans la base de code au lieu d'être factorisée dans une fonction réutilisable .

Extraits de code
Certains outils de développement comme LLMs automatisent le processus d'insertion de fragments de code : du code identique ou ayant une fonctionnalité équivalente.
Coïncidence
Un code similaire peut être développé indépendamment, bien que des études suggèrent que ce code n'est généralement pas similaire sur le plan syntaxique.
Généré
Le code généré automatiquement peut contenir des doublons, mais cela peut être fait pour optimiser les performances d'exécution ou faciliter le développement.

Fixation

Exemple de correction de code dupliqué via le remplacement de code par la méthode

Le code dupliqué est généralement éliminé en déplaçant le code dans une fonction et en remplaçant chaque doublon par un appel à cette fonction.

Par exemple, le code suivant calcule la moyenne d'un tableau d' entiers .

compilateur peut optimiser les appels de fonction afin que le code machine résultant soit identique pour les deux versions. Si la fonction n'est pas optimisée, le surcoût lié aux appels de fonction allongera légèrement le temps d'exécution.

Détection

Plusieurs algorithmes ont été proposés pour détecter le code dupliqué. Par exemple :