Introduction

La duplication de code est souvent considérée comme un problème à éviter dans la programmation. Cependant, Sandi Metz soutient que la duplication de code est moins chère que la mauvaise abstraction. Dans cet article, nous allons explorer les conséquences de la mauvaise abstraction et pourquoi il est préférable de préférer la duplication de code.

Contexte Technique

La mauvaise abstraction se produit lorsque les programmeurs créent une abstraction qui ne correspond pas aux besoins réels du code. Cela peut se produire lorsque les programmeurs essaient de réutiliser du code existant pour répondre à de nouvelles exigences. La mauvaise abstraction peut entraîner des problèmes tels que des conditionnels complexes, des paramètres supplémentaires et des codes difficiles à comprendre.

Le processus de création d'une mauvaise abstraction est souvent le suivant : un programmeur identifie une duplication de code, l'extraie et lui donne un nom, créant ainsi une nouvelle abstraction. Cependant, lorsque de nouvelles exigences apparaissent, les programmeurs sont tentés de modifier l'abstraction existante pour l'adapter, ce qui entraîne des conditionnels et des paramètres supplémentaires.

Analyse et Implications

La mauvaise abstraction peut avoir des implications importantes sur la maintenance et la scalabilité du code. Lorsque les programmeurs sont confrontés à une mauvaise abstraction, ils peuvent être tentés de continuer à la modifier pour essayer de la faire fonctionner, ce qui peut entraîner des problèmes de complexité et de fiabilité. Cependant, il est important de résister à cette tentation et de considérer la possibilité de ré-introduire la duplication de code pour simplifier le code et améliorer sa maintenabilité.

Perspective

En conclusion, la duplication de code est moins chère que la mauvaise abstraction. Lorsque les programmeurs sont confrontés à une mauvaise abstraction, ils doivent considérer la possibilité de ré-introduire la duplication de code pour simplifier le code et améliorer sa maintenabilité. Cela peut nécessiter de re-penser les abstractions existantes et de créer de nouvelles abstractions qui répondent mieux aux besoins réels du code. En fin de compte, la clé pour éviter les mauvaises abstractions est de rester vigilant et de considérer les implications à long terme de nos décisions de conception.