Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site

tcc-case-title
extrêmement geek  extrêmement geek

Cas 213

Le Miroir Imparfait

Cette semaine-là, la jeune maître Zjing faisait une revue du code du Clan des Empreintes de l'Éléphant, dont les moines étaient appelés quand il fallait concevoir les tables des bases de données, créer les déclencheurs, et développer les couches de persistance des applications du Temple.

- - -

Lundi elle vit une table nommée CustomerAddress,
conçue pour conserver l’adresse d’un Client.
Elle avait huit colonnes pour ce faire.

De même elle trouva une classe nommée CustomerAddress,
qui avait huit propriétés correspondantes.
Tout est en bon ordre, pensa la maître.

- - -

Mardi elle vit une table nommée BusinessAddress,
conçue pour conserver l’adresse d’un Business.
Elle avait neuf colonnes pour ce faire.

De même elle trouva une classe nommée BusinessAddress,
qui avait neuf propriétés correspondantes.
Comme on peut s’y attendre, pensa la maître.

- - -

Mercredi elle vit une table nommée RegimentAddress,
conçue pour conserver l’adresse d’un Regiment.
Elle avait dix colonnes pour ce faire.

De même elle chercha une classe nommée RegimentAddress,
qui aurait dix propriétés correspondantes.
mais nulle part elle ne put en trouver—

Et bien qu’il y ait une classe nommé Regiment,
son adresse était stockée dans une BusinessAddress,
street contenait maintenant trois champs sans rapport,
et postalCode le baseNumber,
et suite /barracksNumber/.
Bienvenue dans mon cauchemar, pensa la maître.
- - -

Jeudi elle alla trouver le développeur
qui avait évité d’implémenter une RegimentAddress.
Elle lui demanda de lui en expliquer la raison.

Réutilisation et généricité, dit le moine fièrement :
car n’est-il pas meilleur d’avoir moins de code à gérer ?
Une simple erreur de novice, pensa la maître.

- - -

Vendredi elle vérifia de nouveau le code du moine,
car elle lui avait recommandé les vertus de la cohérence,
et avait hâte de voir comment il progresserait.

Une fois de plus elle chercha une classe nommée RegimentAddress,
qui aurait les dix propriétés attendues,
mais nulle part elle ne put la trouver—

De fait, désormais BusinessAddress avait disparu,
et CustomerAddress également. Et à leur place,
une seule classe Address avec vingt propriétés—
l’union des trois tables Address,
condamnées pour toujours à n’être que partiellement remplies.
JURON CENSURÉ, pensa la maître.
- - -

Samedi elle s’assit au bord d’un lac,
contemplant la réflexion de trois érables,
et pensa :

Trois arbres au dessus, trois arbres en dessous.
Cet étang n’a pas d’esprit
mais a plus de bon sens que ce moine.