La rediffusion estivale de The Daily WTF exhume un classique : une interface qui abandonne l'abstraction pour l'énumération. Christian, un développeur allemand, découvre ITableSelector dans le code—une interface C# déclarant 31 méthodes individuelles pour sélectionner différentes tables. Au lieu d'une approche paramétrée (selectTable(int tableNumber)), le concepteur a codé en dur selectTable1(), selectTable2()... jusqu'à selectTable31(), certaines tables se divisant en variantes (selectTable4a, selectTable4b, selectTable14a à 14d).
L'infraction est un défaut de conception classique : l'interface verrouille les noms de table à la compilation, élimine la sécurité des types et rend l'ajout d'une 32e table une réécriture de contrat. C'est l'opposé du Principe Ouvert/Fermé. Le code crie après une seule méthode acceptant un identifiant de table—ou mieux, une véritable couche d'abstraction.
Le terme inventé par Christian, quäl-kot (code-torture), est juste : c'est le genre de structure qui rend la maintenance une prise d'otage permanente.
Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.