|
|||||||
| Persistance Forum d'entraide pour la persistance en Java : base de donnée, xml, mapping orienté objet, ... Posez vos questions sur iBatis, JDO, XmlBeans, Castor, JAXB, XStream, ... |
|
|
Publicité ' | |||||||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#41 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 88 ![]() |
Finalement, l'utilisation d'ORM c'est un peu choisir Windev comme outil de dev !
Pas une ligne de code (ou presque), pas de code SQL (commande hlit...). Où est donc l'intérêt d'utiliser Java ? J'utilise Windev et je code mes requêtes SQL. J'ai essayé avec les ordres hlit... hajoute ... et question performance les requêtes SQL sont nettement plus performantes. Il faut bien entendu maitriser le SQL. En écrivant du code SQL respectant le norme SQL (la vrai, celle qui est respecté par la majorité des SGDB), on peut s'en sortir sans réécrire du code SQL si on change de SGBD. |
|
|
00
|
|
|
#42 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 88 ![]() |
Oh j'oubliais !
Il ne faut pas perdre de vue le besoin client ! Que veux le client ? Une appli qui réponde à ces specs et qui ne mets pas trois plombe à faire les traitements demandés ! |
|
|
00
|
|
|
#43 |
![]() ![]() |
le parallèle avec Windev n'engage que toi et je ne suis pas certain que ce parallèle soit judicieux ici
__________________
http://ego.developpez.com |
|
|
00
|
|
|
#44 | |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Citation:
Pour le reste, ça fait des choses simplement... mais question performance, on a eu l'occasion (à l'époque) de comparer un exe windev avec la même fonctionnalité Delphi, il n'y avait pas photo (en faveur de Delphi bien sûr A part ça, un ORM ne veut pas dire "pas de ligne de code", il faut coder les requêtes d'accès, l'aspect transaction, etc... il reste à faire... On n'a "juste" pas à faire ce qui n'a aucune valeur ajoutée en terme de fonctionnel (à savoir le lien entre les colonnes et les attributs objets et toute cette soupe). Je me répète (ou alors c'était dans l'autre post) mais un des intérêts principal est de pouvoir manipuler des objets fonctionnels et pas des tables. Bien utilisé, on a une approche très proche des triggers pour les contrôles (par callback) à la différence près (tout de même) en faveur du SGBDR que si on utilise un autre vecteur d'accès aux données, on perd la centralisation et l'intégrité des contrôles. |
|
|
|
00
|
|
|
#45 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
Mouais bon, je quitte la discussion : je vois le forum dans lequel mes posts ont été transférés, je ne risque pas de voir des personnes un peu plus ouvertes d'esprit à ce qui existe hors ORM...
|
|
|
00
|
|
|
#46 | ||||||
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 577 ![]() |
Citation:
Quant à l'intérêt d'utiliser java, prenez donc la peine de comparer ce que vous pouvez faire avec un ORM du style hibernate et ce que vous pouvez faire avec les ordres H** de windev, à la fois en terme de performance et de fonctionnalités et vous serez fixé. Citation:
Les mappings d'un ORM quant à eux peuvent générer les mêmes requêtes que vous écririez à la main, avec des jointures, des conditions, des sous-requête, bref du pur SQL que vous pouvez monitorer. Citation:
Citation:
Personnellement j'ai arrêté de croire qu'on pouvait bosser dans un monde merveillleux full OO en faisant semblant que c'est pas une base de données qui est derrière. Citation:
Vous pouvez partir de l'idée que toutes les opérations sur le résultat d'un SELECT dans lequel chaque ligne nécessite une requête individuelle gagnent énormément à être faits coté serveur. Ils vous économisent les allers-retours réseau et permettent à vos transactions de durer moins longtemps en cas d'UPDATE. Citation:
Je n'ai pas non plus le sentiment qu'un ORM qui fait plein de magie est la solution parfaite, toutefois je ne suis pas contre un bon mapper.
|
||||||
|
|
00
|
|
|
#47 | |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Citation:
|
|
|
|
00
|
|
|
#48 | |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 88 ![]() |
Citation:
Ce que je voulais dire, c'est que à la manière des ORM windev masque et simplifie la persistance des données et ce fonctionnement peut amener à des performances amoindrie. Je ne juge pas hibernate, ibatis ou tout autre ORM (j'ai jamais essayer .. à tort peut être) etje suis à 100% pour l'ORM pour faire du CRUD (mono-table) et seulement pour le CRUD. A partir du moment, où la requête est plus complexe (genre sous requêtes....) je ne suis pas sur que les ORM savent le gérer. De plus pour que le client serveur soit le plus performant possible il faut éviter les aller retour avec le serveur (requete avec sous requetes...). |
|
|
|
00
|
|
|
#49 | |
![]() ![]() |
Citation:
Encore une fois, il s'agit avant tout de conserver une manipulation homogène des concepts objets côté code. Il n'en reste pas moins important de savoir écrire des requêtes "SQL" sauf qu'on le fait avec un langage qui utilise plutôt le noms des attributs des classes et non leur correspondance en base (les colonnes). Une requête mal foutue en HQL (cas d'Hibernate), sera mal foutue en une fois traduite en SQL. Il s'agit donc d'une facilité c'est tout. Le seul problème de faire du SQL "natif" et qu'on est obligé ensuite de transférer les ResultSet dans les objets. C'est franchement inutile quand on a un framework qui le fait pour nous. Oui vous pouvez avoir mis en place des solutions maison qui fonctionnent bien mais comme d'habitude en informatique, pourquoi ré-inventer la roue (l'histoire des mapper peu tout à fait être suffisant dans bien des cas). Pour faire de la communication réseaux, dans la majorité des cas, je suppose que vous ne faite pas de la manipulation de sockets avec read/write, vous utilisez des protocoles/frameworks de plus haut niveau et vous avez raisons dans 99% des cas. Eh bien avec les ORM c'est un peu pareil.
__________________
http://ego.developpez.com |
|
|
|
00
|
|
|
#50 |
|
Membre expérimenté
![]() Inscription : décembre 2006 Messages : 480 ![]() |
Bonjour,
En regardant les bases de données que je gère, le souci ne vient pas de l'utilisation d'un ORM mais du fait qu'on confie à des apprentis-jardiniers la modélisation des données!!! Après on nous demande de tuner des installs pour améliorer les performances et on fait ce qu'on peut mais on ne peut pas faire de miracle... Ensuite, les ORM ont un inconvénient certain pour moi : ça fait croire aux développeurs qu'ils n'ont rien à connaître en ce concerne les BDD. Du coup, on se retrouve à débugguer l'appli à leur place parce qu'ils ont fait une faute de frappe dans un fichier de config et parce qu'ils sont incapables de se connecter à une base de données en direct pour tester leur requête! Voilà pour moi! Arkhena
__________________
A bove ante, ab asino retro, a stulto undique caveto |
|
|
00
|
|
|
#51 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 577 ![]() |
Citation:
Vous pourriez aussi dire qu'on peut faire du multi base via OLEDB ou ODBC, mais là aussi hors de la théorie ça pose vite des soucis. Citation:
|
||
|
|
00
|
|
|
#52 | |
![]() ![]() |
Citation:
Mais ceci est vraiment un problème d'éducation à la base (c'est le cas de le dire). Il est totalement clair que la conception de la base EST LE NERF DE LA GUERRE, avec aussi son mode d'utilisation par l'application. De ma modeste expérience, les problèmes de performance dans les applications sont bien souvent (je ne veux pas donner de chiffre mais je pencherai avec quelque chose de très gros !!) liés à la conception de la base et aux requêtes mal foutues. Ce n'est pas une garantie, je vous l'accord, mais je suis "assez vieux" dans l'informatique, j'ai commencé par du Pro*C avec Oracle dans le code C donc le SQL "natif", j'en ai fait pas mal. Mais pour autant, je trouve que les ORM sont vraiment une très bonne solution. Ca ne veut pas dire qu'il faut mettre les DBA à la poubelle et qu'il ne faut pas savoir concevoir une base (tables, vues, indexes, tablespaces, répartition disque,...)
__________________
http://ego.developpez.com |
|
|
|
00
|
|
|
#53 | |
|
Membre confirmé
![]() Benoit RoccoInscription : décembre 2009 Messages : 88 ![]() |
Citation:
|
|
|
|
00
|
|
|
#54 |
|
Membre expérimenté
![]() Nicolas Inscription : janvier 2011 Messages : 390 ![]() |
Donc à la réponse : Comment sont perçus les outils de mapping Objet /Relationnel (JPA, Hibernate, etc.) par vos DBA ? On peut dire que les DBA réagissent mal !
Si on se tourne du coté des éditeurs et autre on remarquera que l'ORM a pris une grand place : Microsoft met en avant Entity Framework et en 2010 ne parle plus trop du bienfait des procsock et JPA est là pour unifier tout le monde java. Donc l'ORM monte en puissance. Et puis JPA est portable sur beaucoup d'implémentation donc beaucoup de base (y a des limitations potentielles) et même sur des bases NoSql (là y a plus de DBA pour ronchonner) le genre de techno poussée par google. L'ORM permet des gains de productivité du développeur au détriment d'un optimisation fine et des gain de performance. Or on compense la performance avec des serveurs de plus en plus puissants. Alors que le développeur il coûte toujours plus cher... |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com