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

Java Discussion :

Comment gérez vous vos propriétés ?


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut Comment gérez vous vos propriétés ?
    Bonjour,

    Petite question pour savoir comment gérer vous les propriétés de vos projets. Pour ma part voici les différents cas.

    Une constante "final static". Pour moi ce sont les propriétés techniques du projet. Exemple le nom d'une colonne de base. Et dans ce cas soit dans la classe qui utilise la propriété ou dans une classe statique "Constant"

    Dans un fichier de propriété (plat ou xml). Plutôt pour les propriétés fonctionelles. Adresse mail ou adresse FTP. Eventuellement temps d'un timer...
    Dans ce cas, utilisez vous plutôt un chemin en dur ou mettez vous le fichier de propriété dans le classPath de l'application.

    Il m'arrive d'utiliser des enums comme des propriétés. Par exemple pour des types de films (comédie, drame ...), je veux avoir un enum type (avec une valeur). Sur une page web on peut sélectionner le type de son film. Le probléme de ce systéme est de ne pas pouvoir rajouter "dynamiquement" un type de film. Il faut recompiler et redeployer.

    on peut stocké ses propriétés en base.

    on peut accéder aux porpriétés LDAP par JNDI (humm ça je connait pas donc je ne sais pas si ça ce fait)


    Voila quel est votre avis la dessus.

    Merci

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    C'est un problème aux aspects très divers, non encore vraiment résolu chez moi.

    Ma tendance actuelle est de rapprocher la propriété de sa classe ou de sa fonction ; donc j'ai de moins en moins de propriété du projet, et de plus en plus de propriété de telle fonction, tel usage, tel classe.

    Le problème de cette approche est que cela se bordélise au niveau des règles de nommage du projet, mais pour l'instant je tiens le choc. Je règle ce souci en me disant que le bordel arrive parce que il y a une fonction, un utilisateur ou autre que j'ai pas correctement pris en compte.

    Donc, je crées une nouvelle classe, qui a ses règles à ce niveau là, les autres classes y accèdent par des méthodes, et cela met un d'ordre. Je travaille le plus possible à partir de l'organisation des choses, et comment est-ce que je peux l'exprimer dans mon programme.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    Merci de ta réponse gifffftane. Concrètement tu mets tes propriétés dans ta classe alors. Pas de fichier de propriétés ?

  4. #4
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Si, ils existent, mais ils ne cherchent pas à centraliser toutes les propriétés, seulement celles qui sont pratiques à cet endroit.

    Soit par exemple les bases de données et les logs. Comme tu le sais j'imagine, il existe des technos qui s'occupent de ça très bien - hibernate et log4j par ex. Ces technos organisent les propriétés de façon complètement différentes. Quel serait l'intérêt de tout rassembler pour faire une gestion centralisée dans l'appli ? Moi, je vois pas. Je préfère avoir les fichiers hibernate d'un coté, les fichiers log4j de l'autre. Chacune est bien documentée, bien identifiée, largement connue, j'ai pas l'impression qu'une centralisation et homogénéïsation ferait mieux.

    Les fichiers de properties sont bien lorsqu'un humain utilisateur, à quelque niveau qu'il soit, (mais pas utilisateur grand public) veut transmettre une valeur à un logiciel, sans avoir besoin de toute la smala d'une GUI ; un peu dans le même rôle que les options de la ligne de commande.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 64
    Points
    64
    Par défaut
    personnellement, fichiers de propriétés à plat ou xml dans le classpath pour les paramétrages de configuration (url, email,..)
    le reste si possible en bdd (valeur par défaut, paramètre fonctionnel pour plus de souplesse et pour les liste static des enums

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    Merci pour vos réponses. Bon à priori pas vraiment de consensus et de "good practice" pour la gestion des propriétés. Suivant les cas ou les habitudes les stratégies adoptées peuvent être différente.

    Concernant les fichiers de propriétés je préfère un chemin fixe hors du classpath. C'est plus facile à aller modifier ensuite si besoin. Bon au niveau déploiement c'est un peu plus contraignant par contre.

    Ce qui me dérange c'est ma flopée de "final static". Pour l'instant je les stocke dans une interface constante et je l'implémente pour les classes qui en ont besoin.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 29
    Points
    29
    Par défaut
    En ce moment je réalise un projet pour m'entrainer en java et pour la gestion de mes .properties, je mets tous les fichiers (un par classe de paramétrage) à la racine de mon dossier src et je fais une classe de paramétrage rassemblant mes constantes par "scope".

    Par exemple pour la partie Swing j'ai un scope par Onglet de ma fenêtre principale (donc un fichier .properties et une classe ParametrageOnglet par onglet) et un scope pour la fenêtre de mon appli, ce qui me permet de limiter mon nombre de ligne de "public static final" par classe, et je fais un "import static" de ma classe ParametrageOnglet dans ma classe Onglet pour alléger le code.

    Je ne sais pas si c'est une "good practice" mais pour l'instant ça tiens la route...

Discussions similaires

  1. Comment gérez-vous vos médias type image
    Par dorian53 dans le forum Webdesign & Ergonomie
    Réponses: 0
    Dernier message: 24/02/2010, 16h20
  2. Comment gérez-vous vos clients difficiles ?
    Par davcha dans le forum Structure
    Réponses: 8
    Dernier message: 04/04/2007, 12h17
  3. Comment gérez vous vos projets JAVA ?
    Par proner dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 21/03/2007, 15h55
  4. [tomcat][jsp] Comment gerez vous vos connexions bdd?
    Par olive.m dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 21/06/2004, 17h35

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