|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2003 Messages : 1 660 ![]() |
Globalement, c'est toujours une question de besoin. Si on veut obtenir de bonnes performances, un framework de persistance comme MyBatis me parait bien plus approprié pour simplement prendre en charge la plomberie. Un ORM peut être intéressant si on veut se laisser la possibilité de changer de SGBD, mais c'est loin d'être le cas général. Autrement, un ORM apporte autant de complexité qu'il en supprime, donc à quoi bon ?
__________________
Les brevets ? Le type qui a inventé l'eau chaude doit être grave blindé de thunes ! |
|
|
10
|
|
|
#22 | |||||
|
Membre expérimenté
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 297 ![]() |
Citation:
Une base de donnée avec 100 000 entrées dans une table article l'outil time (linux) utilisé 10 fois sur une page listant dans un tableau html ces 100 000 articles Les résultats:
Je joint les fichiers de logs de la commande time, Ci dessous le code du fichier sans appel orm/mkframework (du php pure) Code :
Code :
http://framework.zend.com/releases/Z...12-minimal.zip et concernant le projet mkframework, il faut également télécharger le framework et modifier l'adresse dans le fichier conf/site.ini.php http://mkdevs.com/telecharger.html
__________________
Framework php simple à prendre en main avec générateur web http://mkdevs.com (Hebergé sur developpez.com http://projets.developpez.com/projects/mkframework) N'oubliez pas d'utiliser le bouton si le message est pertinent |
|||||
|
20
|
|
|
#23 | |
![]() ![]() Inscription : décembre 2002 Messages : 2 653 ![]() |
Citation:
Le DBA n'a pas vocation à trier les ordures !
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
12
|
|
|
#24 |
|
Membre expérimenté
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 297 ![]() |
Il nous arrive assez souvent de discuter avec le DBA de certaines requêtes plus ou moins complexe, et le fait de les centraliser permet de les trouver plus facilement.
Ce n'est pas lui demander de trier les ordures (on va pas lui transmettre toutes les requêtes), c'est permettre une meilleure coopération entre les services Que ce soit le dba, ou même un nouveau développeur qui reprend le projet pour l'optimiser, il est toujours pratique de pouvoir facilement trouver l'ensemble des requêtes
__________________
Framework php simple à prendre en main avec générateur web http://mkdevs.com (Hebergé sur developpez.com http://projets.developpez.com/projects/mkframework) N'oubliez pas d'utiliser le bouton si le message est pertinent |
|
30
|
|
|
#25 | |||||
|
Membre émérite
![]() Erwan BiduleDéveloppeur .NET Inscription : février 2009 Messages : 629 ![]() |
Citation:
|
|||||
|
02
|
|
|
#26 | |
|
Membre émérite
![]() Erwan BiduleDéveloppeur .NET Inscription : février 2009 Messages : 629 ![]() |
Citation:
|
|
|
01
|
|
|
#27 | |
|
Membre expérimenté
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 297 ![]() |
Citation:
__________________
Framework php simple à prendre en main avec générateur web http://mkdevs.com (Hebergé sur developpez.com http://projets.developpez.com/projects/mkframework) N'oubliez pas d'utiliser le bouton si le message est pertinent |
|
|
00
|
|
|
#28 | |
|
Membre émérite
![]() Erwan BiduleDéveloppeur .NET Inscription : février 2009 Messages : 629 ![]() |
Citation:
Enfin moi j'suis pas expert, j'utilise toujours un EDM tout en connaissant SQL et ça me va très bien
|
|
|
01
|
|
|
#29 |
|
Membre actif
![]() Inscription : décembre 2010 Messages : 89 ![]() |
Les ORM remplacent une tâche fastidieuse mais maitrisée, par une abstraction permettant un développement plus rapide sur des schémas simple, mais qui, comme toute abstraction, ajoute un lot de notion à appréhender pour avancer (Lazy/Deferred/Eager loading, etc) et peut également se révéler contre-productif, voire casse-gueule sur des schémas complexe.
|
|
|
20
|
|
|
#30 |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 565 ![]() |
Je plussoie Traroth2 de bon coeur cette fois. Le multi-sgbd est rarement quelque chose qu'on nous demande et ça veut aussi dire se passer de tout ce qui est trop spécifique au niveau BDD.
J'irai même plus loin, je ne pense pas que l'utilisation d'un ORM garantisse qu'on puisse changer de SGBD les yeux fermés à moins d'avoir une très bonne grosse suite de test sur chacune des DB visées. Pour ma part, j'ai abandonné hibernate à cause des sentiments de perte de maîtrise qu'il nous procurait. Nous avons utilisé mybatis, puis nous passons petit à petit à JOOQ (Un DSL SQL pour java) car il nous apporte les mêmes avantages que mybatis mais avec une meilleure protection contre la régression. Je suis pas contre un ORM dans le cas où l'on est souvent amené à manipuler des graphes complexes, cependant l'utiliser efficacement est difficile, parfois plus que le problème qu'on essaie de résoudre avec. Donc pour ma part, j'opte pour un simple mapper qui m'épargne le plus pénible de JDBC, je code plus de choses à la main mais les performances sont excellentes, optimiser mes chargements est facile et ma maîtrise des interactions avec la BDD est totale. Pas de bidouillage de bytecode, pas de magie noire, pas de proxys qui explosent à la figure quand on les sérialise. Ca me va très bien. Je reconnais les services rendus par ces outils mais parfois, aller au plus simple et sortir avec un truc facile à comprendre et à débugger quitte à coder plus, c'est une bonne solution. De toutes façons celui qui utilise un ORM juste pour ne pas avoir besoin de bien connaître le SQL, il est sûr de se vautrer. |
|
|
40
|
|
|
#31 |
|
Membre éprouvé
![]() Développeur Inscription : mars 2012 Messages : 373 ![]() |
Première fois que j'entends parler d'ORM
Cela dit, DAL, BLL, unit tests je connais. Rem: .net developer |
|
11
|
|
|
#32 | |
|
Membre émérite
![]() Erwan BiduleDéveloppeur .NET Inscription : février 2009 Messages : 629 ![]() |
Citation:
Un EDM sur .Net pour faire un truc pas compliqué c'est les doigts dans l'nez... |
|
|
02
|
|
|
#33 |
|
Membre du Club
![]() Développeur Java, Php, html, css, javascript Inscription : mai 2009 Messages : 96 ![]() |
Simple question? Les BDD object , ça en est ou? ça permettrait justement de se passer des ORM sans sacrifier les performances non?
|
|
|
01
|
|
|
#34 | |
|
Membre actif
![]() Inscription : décembre 2010 Messages : 89 ![]() |
Citation:
C'est bien ce que je dis, pour faire un truc simple d'accord, mais dés que ça touche à des trucs plus compliqué et/ou à une forte volumétrie, faut avoir une très bonne connaissance de l'outil pour arriver à quelque chose. |
|
|
|
10
|
|
|
#35 | |
|
Membre émérite
![]() Erwan BiduleDéveloppeur .NET Inscription : février 2009 Messages : 629 ![]() |
Citation:
Juste que la avec ou sans ORM c'est pareil sauf pendant le développement où t'as pas besoin de t'arracher les cheveux avec des requêtes SQL... En tout cas si les ORM existent et sont utilisés (c'est quand même pas des outils à l'abandon) c'est qu'ils sont utiles... |
|
|
02
|
|
|
#36 | |
|
Membre expérimenté
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 297 ![]() |
Citation:
__________________
Framework php simple à prendre en main avec générateur web http://mkdevs.com (Hebergé sur developpez.com http://projets.developpez.com/projects/mkframework) N'oubliez pas d'utiliser le bouton si le message est pertinent |
|
|
01
|
|
|
#37 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 131 ![]() |
Personellement, les 2 seuls cas pour lesquels je n'utilise pas un ORM
- Si l'aspect performance ne me laisse pas le choix - Si jai seulement quelque requete simpliste a faire alors je considere que faire la configuration et un 'mapping' serais probablement une perte de temps. Ajouter une librairie et toute ses dependances seulement pour 1-2 requetes... un peu tordu. sinon moi et hibernate on est de bon amis
|
|
|
02
|
|
|
#38 | |||
![]() ![]() Pierre CabocheInscription : octobre 2005 Messages : 2 321 ![]() |
Citation:
Et comme si cela ne suffisait pas, tu as l'outrecuidance de traiter certains de troll à mots à peine couverts et de sous-entendre qu'ils n'y connaissent rien... (là, c'est carrément se moquer du monde !) Citation:
C'est seulement quand les projets deviennent un peu sérieux (le genre de projet sur lesquels tu n'as, de ton propre aveu, jamais eu l'occasion de travailler) qu'on a besoin de regarder plus profondément dans les détails techniques du SGBD. Si on a la chance d'avoir un collègue DBA (dans les petites entreprises, ce n'est pas toujours le cas et les développeurs jouent de rôle de factotum pour tout ce qui est ressources IT) c'est à ce moment qu'il faut se tourner vers lui pour discuter de son problème (et dans le pire des cas, la développeur et le DBA tombent d'accord : c'est l'architecte qui a pondu une abomination et maintenant il faut faire avec et bidouiller pour que ça ne plante pas trop). Mais bon, quand on atteint ce niveau, c'est clair que ça ferait déjà longtemps que les ORM auraient été complètement à la ramasse... Citation:
Ce qui m'a toujours amusé dans l'acronyme "RAD", c'est que cela ne veut pas dire "Développement d'Applications Rapides (comme on pourrait le penser de prime abord), mais "Développement Rapide d'Applications". Et dans les faits, c'est surtout: "Développement Rapide d'Applications (souvent très lentes et pas forcément faciles à maintenir)". Et dans certains cas, ça se traduit par l'émergence d'un nouveau cycle de développement, que j'appelle "le cycle en 2 temps", malheureusement de plus en plus en vogue: 1er temps: - l'entreprise exprime un besoin, elle fait un appel d'offres - un consultant arrive et propose sa solution - le consultant fait du RAD et respecte les délais - le client est content, le consultant touche son gros chèque - on met la solution en prod 2ème temps: - au bout d'un certain temps d'exploitation, les problèmes de volumétrie/charge apparaissent - on fait appel à un "spécialiste" pour corriger les défauts de "cette grosse m**** d'application" (dixit les utilisateurs) - au bout d'un moment (3 ou 4 entreprises où on retrouve le même genre de problème), le "spécialiste" en a ras le c*l de devoir essuyer les m***** de ces consultants à la c*n J'ai volontairement mis le terme "spécialiste" entre guillemets. En fait, ce qui en fait "spécialiste", c'est qu'il sait se retrousser les manches plutôt que d'utiliser des outils pour gamins censés lui mâcher le travail... Il existe une variante, qui est le cycle en 3 temps. C'est la même chose que le cycle en 2 temps, mais avec une extension: 3ème temps: - on sous-traite les évolutions du système dans un pays du tiers-monde où les gens s'en fichent parce qu'ils sont payés au lance-pierre pour travailler sur des applications où tout le monde a jeté l'éponge depuis longtemps - on demande au dernier spécialiste en place de faire un "transfert de connaissances" - si ce n'est pas déjà fait dans le 2ème temps (des raisons personnelles qui l'ont contraint à rester), le spécialiste se casse en disant à tout le monde d' "aller se faire ***** avec un ***** pendant qu'un ****** vous ***** le *****... " (utilisez votre générateur d'insultes préféré pour remplir les blancs) Donc oui, les ORM et autres outils de RAD ont leur utilité : lancer la première phase du cycle en 2 ou 3 temps (c'est-à-dire pondre rapidement des applis, toucher son gros chèque et aller f**tre sa m***** ailleurs avant que les choses ne devennent un minimum sérieuses et que l'appli ne vous explose à la g*****). Cordialement, P.
__________________
Derniers articles: (SQL Server) Introduction à la gestion des droits (UML) Souplesse et modularité grâce aux Design Patterns (UML) Le Pattern Etat Autres articles... |
|||
|
95
|
|
|
#39 |
![]() ![]() |
@pcaboche
joli post, ça sent sacrément le vécu tout ça, dis donc... Je ne vais pas me la jouer Mireille Dumas, mais tu devrais consulter pour te faire du bien. Tu ferais moins de cauchemars
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
10
|
|
|
#40 | |
|
Membre expérimenté
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 297 ![]() |
Citation:
Tous n'affichent pas les mêmes performances (cf posts précédents) Je préconise l'écriture des requêtes en SQL dans les classes modèles Cela permet: 1. De séparer et centraliser les requêtes (un des avantages du MVC) 2. Gagner en performances et en transparence (permet facilement de switcher vers des vues si nécessaire) 3. Identifier les paramètres des requêtes (plus facile à sécuriser)
__________________
Framework php simple à prendre en main avec générateur web http://mkdevs.com (Hebergé sur developpez.com http://projets.developpez.com/projects/mkframework) N'oubliez pas d'utiliser le bouton si le message est pertinent |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com