Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 33 sur 33
  1. #21
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 356
    Points : 35 103
    Points
    35 103

    Par défaut

    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
    Tchize (Чиз) 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.

  2. #22
    Rédacteur
    Avatar de eclesia
    Inscrit en
    décembre 2006
    Messages
    1 963
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 1 963
    Points : 2 476
    Points
    2 476

    Par défaut

    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.

  3. #23
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 356
    Points : 35 103
    Points
    35 103

    Par défaut

    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à
    Tchize (Чиз) 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.

  4. #24
    Rédacteur
    Avatar de eclesia
    Inscrit en
    décembre 2006
    Messages
    1 963
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 1 963
    Points : 2 476
    Points
    2 476

    Par défaut

    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)

  5. #25
    Membre Expert

    Homme Profil pro Chris Camel
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    1 245
    Détails du profil
    Informations personnelles :
    Nom : Homme Chris Camel
    Âge : 39
    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 245
    Points : 1 650
    Points
    1 650

    Par défaut

    Citation Envoyé par eclesia Voir le message
    Les annotations ne gerent pas les versions d'annotations
    Peux-tu expliciter ce point particulier ?

  6. #26
    Rédacteur
    Avatar de eclesia
    Inscrit en
    décembre 2006
    Messages
    1 963
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 1 963
    Points : 2 476
    Points
    2 476

    Par défaut

    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.

  7. #27
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 356
    Points : 35 103
    Points
    35 103

    Par défaut

    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.
    Tchize (Чиз) 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.

  8. #28
    Membre Expert

    Homme Profil pro Chris Camel
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    1 245
    Détails du profil
    Informations personnelles :
    Nom : Homme Chris Camel
    Âge : 39
    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 245
    Points : 1 650
    Points
    1 650

    Par défaut

    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 ?

  9. #29
    Rédacteur
    Avatar de eclesia
    Inscrit en
    décembre 2006
    Messages
    1 963
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 1 963
    Points : 2 476
    Points
    2 476

    Par défaut

    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

    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

  10. #30
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 356
    Points : 35 103
    Points
    35 103

    Par défaut

    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)
    Tchize (Чиз) 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.

  11. #31
    Membre Expert

    Homme Profil pro Chris Camel
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    1 245
    Détails du profil
    Informations personnelles :
    Nom : Homme Chris Camel
    Âge : 39
    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 245
    Points : 1 650
    Points
    1 650

    Par défaut

    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.

  12. #32
    Membre Expert

    Homme Profil pro Chris Camel
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    1 245
    Détails du profil
    Informations personnelles :
    Nom : Homme Chris Camel
    Âge : 39
    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 245
    Points : 1 650
    Points
    1 650

    Par défaut

    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.

  13. #33
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 356
    Points : 35 103
    Points
    35 103

    Par défaut

    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
    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))
    Tchize (Чиз) 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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •