Précédent   Forum du club des développeurs et IT Pro > Java > Communauté Java > Débats
Débats Les débats et sondages sur le langage et les technologies Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 16/04/2009, 22h30   #21
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
les versions, pour beaucoup de besoins, sont gérées au niveau du repository de code. Quand tu fait évoluer ta classe et ses annotation vers une situation nouvelle, tu reviens rarement en arrière, sauf pour du legacy, et là tu ressort le vieux code de ton bon vieux svn et tu le recompile. Et comme déjà mentionné, si le meme code doit etre utilisé dans des situation différente, ok pour les annotation a condition que des fichiers puissent préciser ou faire varier ces annotations. Dans le code, on met ce qui change pas, sauf si le code doit aussi changer
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2009, 09h44   #22
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 877
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 877
Points : 2 254
Points : 2 254
Citation:
Envoyé par tchize_ Voir le message
les versions, pour beaucoup de besoins, sont gérées au niveau du repository de code. Quand tu fait évoluer ta classe et ses annotation vers une situation nouvelle, tu reviens rarement en arrière, sauf pour du legacy, et là tu ressort le vieux code de ton bon vieux svn et tu le recompile. Et comme déjà mentionné, si le meme code doit etre utilisé dans des situation différente, ok pour les annotation a condition que des fichiers puissent préciser ou faire varier ces annotations. Dans le code, on met ce qui change pas, sauf si le code doit aussi changer
On voit que tu n'as jamais fait d'application intéropérable. essai de communiquer entre 2 applications serveur si elles n'utilisent pas la meme version d'une norme d'echange, bonne chance.

Tu ne geres pas les versions des normes au niveau du code, je suis surpris que tu proposes cette solution.
__________________
Systèmes d'Informations Géographiques
- Projets : GeoAPI GeotoolKit PuzzleGIS

Pour un monde sans BigBrother IxQuick ni censure RSF
eclesia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2009, 12h10   #23
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
J'a idéjà du travailler avec des serveur ou fallait balancer mes donnée dans des formats les pluts tordus les uns que les autres, sans annotations. Et même sans annotations, j'ai un template par format d'export. Je vois pas le lien avec les annotation dans l'histoire

Et comme je l'ai dit, pour moi vouloir utiliser des annotation pour diriger la manière dont un code se comporte, alors que tu sais pertinement que ce code devra se comporter de manière différente suivant la situation, c'est assez inutile. Autant se passer des annotations dans ces cas là
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2009, 19h47   #24
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 877
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 877
Points : 2 254
Points : 2 254
Citation:
Envoyé par tchize_ Voir le message
Et comme je l'ai dit, pour moi vouloir utiliser des annotation pour diriger la manière dont un code se comporte, alors que tu sais pertinement que ce code devra se comporter de manière différente suivant la situation, c'est assez inutile. Autant se passer des annotations dans ces cas là
ca revient a ce que j'avasi dit : ne pas utiliser d'annotation pour ce qui est binding (xml ou autre)
__________________
Systèmes d'Informations Géographiques
- Projets : GeoAPI GeotoolKit PuzzleGIS

Pour un monde sans BigBrother IxQuick ni censure RSF
eclesia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2009, 22h49   #25
Tommy31
Membre Expert
 
Homme Chris Camel
Architecte de système d'information
Inscription : novembre 2006
Messages : 1 242
Détails du profil
Informations personnelles :
Nom : Homme Chris Camel
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : novembre 2006
Messages : 1 242
Points : 1 892
Points : 1 892
Citation:
Envoyé par eclesia Voir le message
Les annotations ne gerent pas les versions d'annotations
Peux-tu expliciter ce point particulier ?
Tommy31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2009, 23h45   #26
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 877
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 877
Points : 2 254
Points : 2 254
Quand tu annote ta classe avec une api de binding : type jaxb.
les annotations sont faites pour une version particuliere du xml.

Quand on suit des normes, parmis lesquelles ISO et OGC, les normes évoluent avec les années avec une nouvelle version tout les 2/3ans environs et des revisions qui peuvent être quasi annuelle pour les normes très actives.

Donc quand tu as annotée ta classe, tu l'as fait pour une version particulière. seulement il est rare d'avoir deux applications (venant de société différentes) alignée en permanence sur la même version. Par conséquent notre classe doit pouvoir être "marshaller" en différente version d'une même norme pour pouvoir vraiment etre interopérable. Mais il est impossible d'avoir plusieurs annotations faisant référence à différente version ou a différentes normes.

Un exemple : j'ai une série de classes pour faire de la symbologie, il exite une norme OGC et une norme ISO et on peut aussi vouloir quelque chose de plus grand public comme le SVG ou le CSS.
les 4 normes décrivent plus ou moins la meme chose mais de facon differente. Avec des annotations tu es foutu, tu dois faire une interface et N implémentation pour chaque version/norme.

Un bon parser en vrai java et son lot de tests unitaires, c'est la seule solution viable a long terme.
__________________
Systèmes d'Informations Géographiques
- Projets : GeoAPI GeotoolKit PuzzleGIS

Pour un monde sans BigBrother IxQuick ni censure RSF
eclesia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 10h09   #27
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
dans ce cas là, bien sur, mais ca n'enlève rien à l'utilité ds annotation si tout ce que tu veux c'est marshaller ta classe pour la récupérer 5 minutes après sur la même version de ton appli, bref quand le format est à usage interne seulement (communication client / server utilsant la même version du protocole par exemple).

Perso il m'est jamais venu à l'idée d'utiliser des annotations pour exporter vers des format étranger à mon appli, j'ai toujours préféré l'utilisation d'un bon vieux template en freemarker ou en jsf (facelet parfois c'est du tout bon pour l'export format XML de données :p) qu'on sais faire évoluer sans toucher au code.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 10h49   #28
Tommy31
Membre Expert
 
Homme Chris Camel
Architecte de système d'information
Inscription : novembre 2006
Messages : 1 242
Détails du profil
Informations personnelles :
Nom : Homme Chris Camel
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : novembre 2006
Messages : 1 242
Points : 1 892
Points : 1 892
Citation:
Envoyé par eclesia Voir le message
Quand on suit des normes, parmis lesquelles ISO et OGC, les normes évoluent avec les années avec une nouvelle version tout les 2/3ans environs et des revisions qui peuvent être quasi annuelle pour les normes très actives.
Tout à fait.

Citation:
Envoyé par eclesia Voir le message
Un exemple : j'ai une série de classes pour faire de la symbologie, il exite une norme OGC et une norme ISO et on peut aussi vouloir quelque chose de plus grand public comme le SVG ou le CSS.
les 4 normes décrivent plus ou moins la meme chose mais de facon differente.
Si c'est fait de façon différente, c'est que le modèle qui le capture est également différent (un schema iso est différent d'un schema ogc); Donc il existe plusieurs traductions dans le code, et donc plusieurs jeu d'annotations.

Comment résous-tu ce problème avec une sérialisation classique ?
Tommy31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 13h42   #29
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 877
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 877
Points : 2 254
Points : 2 254
Citation:
Envoyé par tchize_ Voir le message
Perso il m'est jamais venu à l'idée d'utiliser des annotations pour exporter vers des format étranger à mon appli, j'ai toujours préféré l'utilisation d'un bon vieux template en freemarker ou en jsf (facelet parfois c'est du tout bon pour l'export format XML de données :p) qu'on sais faire évoluer sans toucher au code.
Ce ne sont pas des formats étranger justement, on doit les gérer pour pouvoir communiquer avec les autres applications. le but de nos applications est en grande partie l'échange d'informations, se sont des applis serveur qui fournissent des services normalisés qui ne communique pas necessairement avec des clients fait par nous.
Un exemple (réel) un client MapFaces qui communique avec les serveurs cartographique de la nasa ou de l'unesco.

Je ne vois pas ce que vient faire jsf et les servlets la dedans

Citation:
Si c'est fait de façon différente, c'est que le modèle qui le capture est également différent (un schema iso est différent d'un schema ogc); Donc il existe plusieurs traductions dans le code, et donc plusieurs jeu d'annotations.

Comment résous-tu ce problème avec une sérialisation classique ?
Il n'y a pas plusieurs traduction dans le code, il y a une classe "Style" qui cumule toutes les possibilités des différentes normes, a cause de ca, la structure de la classe ne colle a aucune des normes mais est capable d'en gérer tous les élements.

Comme le modèle ne colle pas a la norme je ne peux pas l'annoter, alors la solution est de transformer ses classes vers des classes annotées pour une norme et une version donné, ce qui peut en faire beaucoup. c'est le choix qu'a fait la société.

Personnellement, j'aurais fait des parseur stax, ce qui serait beaucoup plus performant, moins couteux en mémoire mais qui aurait prit plus de temps a réaliser. malheureusement jaxb est tres a la mode a cause de metro et des autres api, va donc expliquer a un patron non développeur pourquoi il ne devrait pas utiliser une api que tout le monde utilise
__________________
Systèmes d'Informations Géographiques
- Projets : GeoAPI GeotoolKit PuzzleGIS

Pour un monde sans BigBrother IxQuick ni censure RSF
eclesia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 14h27   #30
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Citation:
Envoyé par eclesia Voir le message
Ce ne sont pas des formats étranger justement

.... qui ne communique pas necessairement avec des clients fait par nous.
Perso c'est ma définition de "étranger à mon application", t'as pas le controle absolue sur le lecteur et l'encodeur

JSF était juste un exemple. Pour les export j'évite au maximum d'utiliser du code, j'utilise toujours des système de template (freemarker par exemple peu lire un template et y injecter les données :p). par contre, de fait, pour la lecture, il faut souvent passer par du code ^^

On en reviens de toutes facon au final a être d'accord il me semble: les annotation: oui pour ce qui est lié au code , sinon c'est pas la peine (logique puisqu'elles sont dans le code :p)
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 15h53   #31
Tommy31
Membre Expert
 
Homme Chris Camel
Architecte de système d'information
Inscription : novembre 2006
Messages : 1 242
Détails du profil
Informations personnelles :
Nom : Homme Chris Camel
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : novembre 2006
Messages : 1 242
Points : 1 892
Points : 1 892
Citation:
Envoyé par eclesia Voir le message
Il n'y a pas plusieurs traduction dans le code, il y a une classe "Style" qui cumule toutes les possibilités des différentes normes, a cause de ca, la structure de la classe ne colle a aucune des normes mais est capable d'en gérer tous les élements.
Ok, tu as donc un modèle protéiforme qui ne singularise pas chaque norme.

Citation:
Envoyé par eclesia Voir le message
Comme le modèle ne colle pas a la norme je ne peux pas l'annoter, alors la solution est de transformer ses classes vers des classes annotées pour une norme et une version donné, ce qui peut en faire beaucoup. c'est le choix qu'a fait la société.
C'est aussi le choix que nous avons fait. C'est pas que je sois un adorateur de jaxb, mais le choix Jaxb peut se défendre pour plusieurs raisons dont une est qu'il permet une réification du schema xml dans le code, donc de tirer bénéfice du compilateur pour le binding, il est bidirectionnel et il est global (et non séquentiel). Après, effectivement, c'est lourd et consommateur de mémoire.

En outre, avec des outils comme hyperjaxb, il est possible à la fois de créer un maping xml-objet, mais aussi objet-relationnel. Ce qui est très intéressant.

Citation:
Envoyé par eclesia Voir le message
Personnellement, j'aurais fait des parseur stax, ce qui serait beaucoup plus performant, moins couteux en mémoire mais qui aurait prit plus de temps a réaliser.
A réaliser, à mettre au point et à maintenir. En outre, il me semble que stax ne gère que les chaines de caractères, ce qui implique de mettre en place des convertisseurs (date, nombres).
Nous, nous travaillons sur les normes iso 19139. Ecrire un parseur stax de cette norme est inimaginable tellement c'est complexe. Les décideurs sont peut-être pro-production, mais les informaticiens sont aussi très faignants.
Tommy31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 15h58   #32
Tommy31
Membre Expert
 
Homme Chris Camel
Architecte de système d'information
Inscription : novembre 2006
Messages : 1 242
Détails du profil
Informations personnelles :
Nom : Homme Chris Camel
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : novembre 2006
Messages : 1 242
Points : 1 892
Points : 1 892
Citation:
Envoyé par tchize_ Voir le message
Pour les export j'évite au maximum d'utiliser du code, j'utilise toujours des système de template (freemarker par exemple peu lire un template et y injecter les données :p).
C'est pas à mettre au même niveau que jaxb. Freemarker c'est du rendu, jaxb du mapping;
En outre, avec freemarker, tu n'as aucun controle sur la validité de ce que tu produit (à moins de rajouter une couche). Un export xml ou json peut se retrouver foireux sans que tu t'en apperçoive (c'est du vécu).

Perso, nous utilisons un mapping dozer + jaxb, qui permet l'export/import xml et json sans faute et sans code supplémentaire.
Tommy31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2009, 16h47   #33
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Citation:
Envoyé par Tommy31 Voir le message
Perso, nous utilisons un mapping dozer + jaxb, qui permet l'export/import xml et json sans faute et sans code supplémentaire.
merci pour le truc de mon coté, pour tous nos format d'export, c'est à chaque fois des formats bidouille a moitié pas documenté exigés par un service externe et, (là aussi c'est du vécu) a la question "vous avez un DTD, un serveur ou n'importe quoi pour pouvoir tester la validité des données par rapport au format approximativement documenté que vous utilisez?" j'ai eu une réponse variant autour de
Citation:
vous nous envoyez le fichier, on l'ouvre dans excel pour regarder si il y a des erreur flagrante, ensuite on l'importe dans notre serveur de test pour voir si tout va bien et finalement, on l'importe sur le serveur SAP si ca fonctionne. Si il y a une erreur ou vous rappel
Devant ce genre de réponse, je me sens parfois désespéré (quand c'est pas des format impossibles à respecter car il y a incohérence entre le format (théorie) et les données réelles (la pratique))
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h34.


 
 
 
 
Partenaires

Hébergement Web