Duplication de code

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

La duplication de code en programmation informatique est une erreur courante de conception de logiciels où une suite d'instructions similaires (voire identiques) existe en plusieurs endroits du code source d'un logiciel.

Description[modifier | modifier le code]

La duplication de code arrive à la suite de copier-coller de code source. C'est une erreur classique de débutants en programmation informatique. Cependant cette erreur touche également les développeurs confirmés.

Le code dupliqué exhibe de graves problèmes de maintenance dont la gravité augmente avec la quantité de code dupliqué. Plus le code est dupliqué, plus il y a de code à maintenir. Par exemple:

  • si le code copié avait une erreur de programmation, alors tout le code collé dispose de la même erreur de programmation. Corriger l'erreur nécessite de modifier tous les endroits où le code est dupliqué.
  • si le code dupliqué doit évoluer, il faut alors modifier tous les endroits où le code est dupliqué pour y parvenir.
  • un code dupliqué peut masquer des différences minimes, mais essentielles, qui existe avec une autre portion de code similaire.

L'antipattern correspondant est l'erreur de copier/coller: Il s'agit d'un copier-coller de code, où le code collé n'a pas été adapté à la portion de code environnante ce qui entraîne des incohérences. Cela arrive généralement à cause d'un défaut de vérification de la part du programmeur. La meilleure solution étant de factoriser les parties communes au lieu de les dupliquer.

Solutions[modifier | modifier le code]

  • La technique permettant d'éviter la duplication de code est la factorisation du code et celle permettant de s'en débarrasser est la refactorisation.
  • Test Driven Development est un processus de développement permettant d'éviter le code dupliqué tout en disposant d'un code bien testé.
  • DRY (Don't repeat yourself! en anglais, ou Ne vous répétez pas) est un principe de programmation encourageant à éviter la duplication de code (dans laquelle le programmeur se répète).
  • Des logiciels tels PMD, permettent d'identifier le code dupliqué dans une base de code.

Voir aussi[modifier | modifier le code]