Bonjour,
Je suis tombé par hasard sur cet article en parcourant le net :
http://java.dzone.com/articles/martin-fowler-orm-hate
ou M. Martin Fowler, un célèbre auteur de bouquin, répond aux nombreux anti-ORM du net qui disent être retournés au pur SQL après s'être essayé à des outils tels qu'hibernate ou active record.
Vous remarquerez qu'on tombe assez souvent sur ce genre de témoignage en parcourant stackoverflow.
MF explique que le mapping objet relationnel est un problème complexe qui ne peut pas avoir de réponse simple. Certes les ORMs offrent une abstraction, cette abstraction a un coût et la maîtrise de ces outils ne s'acquière pas facilement. S'ils ne sont pas la solution parfaite à tout, ils permettent bien souvent de se défaire d'une très grosse quantité de code répétitif (du CRUD typiquement) ce qui peut représenter parfois jusqu'à 80% des interactions DB.
L'erreur selon lui, est d'attendre le 100% de leur part. Et c'est justement ces 20% restant qui demandent beaucoup d'attention et qui provoquent les critiques sévères à l'encontre des ORM, là où les connaissances plus poussées en relationnel deviennent nécessaires.
Donc ces outils sont parfois des usines à gaz, ils sont parfois lents mais au fond ils sont surtout le plus souvent mal utilisés. (Je me souviens d'un forumeur BA.F de développez.com disant dans un vieux topic qu'hibernate était sans doute le framework le plus mal utilisé de la planète).
C'est en gros le point de vue de notre ami MF : c'est pas parfait, mais ça résout bien des problèmes.
Et vous :
Utilisez-vous un ORM ou un outil d'accès aux données, par votre propre choix ou dicté par votre environnement d'entreprise?
Avez-vous eu du mal à l'utiliser correctement, avez-vous regretté votre choix?
Mélangez-vous les 2 approches (par exemple un ORM pour tout ce qui est CRUD/plomberie et le SQL a mano pour ce qui est vraiment exigeant).
Partager