Je suis face à un choix et il n'y a rien de prévu dans les règles de
gouvernance ToPIA sur ce sujet. Je suis donc face à un dilemme.
Dans le cadre du ticket #2892, nous sommes en train de faire en sorte de
réduire au maximum la configuration nécessaire à ToPIA. Pour cela, dès
qu'on peut fixer une valeur par défaut qui peut être bonne pour la
majorité des cas ou qui suit une bonne pratique, on le fait.
Sauf que là, ça s'oppose à deux autres principes souhaitables :
1/ souhait de rétro-compatibilité (pour moi, c'est pas un souci car on
travaille sur une version majeure)
2/ le principe de moindre surprise qui veut qu'un composant fonctionne a
priori comme on s'y attendra, et donc on pourra s'attendre à ce que
ToPIA, basé sur Hibernate, ait comme comportement par défaut celui
d'Hibernate (donc ne pas changer les valeurs par défaut).
En l'occurence, il s'agit de fixer la naming strategy d'Hibernate. Par
défaut, Hibernate (et donc ToPIA 2 et, je suppose, une majorité de nos
projets) utilisent la DefaultNamingStrategy alors que la bonne pratique
veut qu'on utilise la ImprovedNamingStrategy.
Donc soit
option 1) ToPIA démarre Hibernate avec, par défaut, la
ImprovedNamingStrategy parce que c'est la bonne pratique mais certains
projets basés sur ToPIA 2 (pas ceux qui démarreront sur ToPIA 3) devront
avoir une ligne de configuration en plus (ça qui me paraît pas la mer à
boire) pour assurer la compatibilité avec ToPIA 3 (à moins de migrer les
bases mais ça me paraît fou)
option 2) On laisse tel quel, car c'est ainsi que fonctionne Hibernate
par défaut et donc c'est à Hibernate de faire le choix de faire évoluer
la valeur par défaut
C'est un cas particulier mais je voudrais généraliser ça à une règle de
gouvernance ToPIA qui indiquera désormais laquelle de ces deux voies on
préconise.
À vos avis.
P.S : l'immense partie anglophone de notre gigantesque communauté
d'utilisateurs de ToPIA me pardonnera ce mail en français.
--
Brendan Le Ny, Code Lutin
bleny(a)codelutin.com
(+33) 02 40 50 29 28