IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

Gwt emplois de type "evolué"


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Par défaut Gwt emplois de type "evolué"
    Bonsoir,

    une petite question pourquoi il serait préférable dans la partie graphique d'employer des types "évolués" ? c'est à dire, que si on a besoin d'un bouton donc :

    button monButton;

    est une mauvaise pratique alors que :

    HasText monButton; là c'est mieux ?

    merci de vos éclaircissements, c'est surement super bête mais je ne vois.

    Perso : je trouve que oui hastext est plus "générale" que button et donc au finale cela permet plus tard dans le code de venir setter l'objet que l'on veut, mais Hastext rend la lecture du code plus complexe, et surtout ca apporte pas grand chose au code.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 61
    Par défaut
    Utiliser les interfaces, HasTest, HasClick etc, permet de faire des test unitaires sans démarrer le serveur web. En pur java.

    Si tu utilises les widgets Gwt, tu dois obligatoirement dériver tes classes de test unitaires de gwttestcase et donc ils prennent beaucoup beaucoup plus de temps à s'effectuer.

  3. #3
    Membre chevronné
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Par défaut
    Bonjour,

    C'est une question d'architecture de ton application.

    les patterns de GRASP peuvent t'aider à comprendre les problématiques liées à l'évolutivité et l'utilisation de ton code.

    Pour résumé, lorsque tu conçois une application, il faut se poser la question suivante : le composant que je réalise doit-il être plutôt évolutif ? ou plutôt utilisable ?

    Grosso modo, plus un objet sera cohérent, plus il sera facilement utilisable. A l'opposé, plus tu découple cet objet (en l'éclatant, via plusieurs interface) et plus il sera évolutif.

    C'est la résponsabilité des classes qui détermine tout cela.

    Pour répondre à ta question, il n'y a pas de règles rigides sur cet aspect. C'est un choix d'architecture. Tu peux faire le choix de rendre ton application évolutif. Mais tu peux aussi faire le choix de le rendre plus facilement utilisable, mais moins souple du coup.

    Dans ton exemple, utiliser hasText c'est faire le choix de l'évolutivité en diminuant le couplage. utiliser Button c'est augmenter la cohérence et donc rendre le code plus facile à lire.

    Il faut voir cela comme un curseur que tu peux faire glisser de extremement évolutif vers extrêmement cohérent.

    En général les extremes ne sont pas de bons choix. hasText est un peu trop extremiste pour moi. Je pense qu'il existe un juste milieux qui soit un meilleur compromis.

    Les frameworks vont avoir tendances à décaller le curseur plus vers l'évolutivité. les applications final doivent fixer le curseur au meilleur point suivant le contexte. Dans la couche métier etre plutot évolutif, dans la couche cliente on peut choisir de placer le curseur plutot du coté de la cohérence.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo