p
u
b
l
i
c
i
t
é
publicité
+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    octobre 2007
    Messages
    3 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 666
    Points : 10 473
    Points
    10 473

    Par défaut Implémenter le patron de conception DAO par les tests

    Bonjour à tous,

    Je vous propose un TP en Java. Ce TP vous montre comment écrire et tester un DAO en Java. Vous allez découvrir Maven, tracer le fonctionnement avec Log4j, tester vos méthodes avec JUnit, lire des fichiers CSV avec OpenCsv et CsvEngine, gérer des ressources en Java et bien plus encore...

    http://thierry-leriche-dessirier.dev...et-tester-dao/

    Bonne lecture.

    Et comme d'habitude, n'oubliez pas de nous indiquer vos remarques, bonnes ou négatives, à la suite de ce message.

    Th.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche
    Test DISC gratuit : http://www.profil4.com

  2. #2
    Membre éprouvé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    janvier 2005
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 356
    Points : 468
    Points
    468
    Billets dans le blog
    1

    Par défaut

    Salut,
    Je viens de parcourir l'article que j'ai trouvé très intéressant, merci pour ce contenu

  3. #3
    Membre Expert
    Inscrit en
    mai 2006
    Messages
    1 216
    Détails du profil
    Informations forums :
    Inscription : mai 2006
    Messages : 1 216
    Points : 1 704
    Points
    1 704

    Par défaut

    Pour l'instant, je n'ai lu que l'intro mais ca a l'air tres interessant. Je dirais ce que j'en pense quand j'aurais lu la suite

    Merci pour le tuto en tout cas

  4. #4
    Candidat au titre de Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2009
    Messages : 11
    Points : 13
    Points
    13

    Par défaut Excellent boulot !

    Travail très impressionnant, super détaillé. Bravo !

  5. #5
    Expert Confirmé Sénior
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2005
    Messages
    2 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : février 2005
    Messages : 2 638
    Points : 5 912
    Points
    5 912

    Par défaut

    Beau travail .

    Juste une petite remarque sur l'enum Sexe, l'attribut code me semble superflu à moins qu'il y ait une raison particulière de ne pas utiliser l'ordinal de l'enum ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public enum Sexe {
     
        FEMALE,
        MALE
    }
    // Sexe.FEMALE.ordinal() -> 0
    // Sexe.MALE.ordinal() -> 1
    // Sexe.values()[0] -> Sexe.FEMALE
    // Sexe.values()[1] -> Sexe.MALE
    Après personnellement je préfère utiliser le nom de l'enum qui rend les fichiers de config plus lisible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String str = sexe.name();
    sexe = Sexe.valueOf(str);
    L'inconvénient est que cela prend un peu plus de place (mais c'est très souvent négligeable).

    Pareil pour l'enum RaceDeChien, pourquoi ajouter un attribut code au lieu d'utiliser le nom de l'enum (methode name()) ?

  6. #6
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    octobre 2007
    Messages
    3 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 666
    Points : 10 473
    Points
    10 473

    Par défaut

    Bonjour,

    Ce sont des très bonnes remarques.

    Pour l'enum Sexe, j'ai mis un code pour avoir "1" et "2", comme sur le numéro de sécurité social. Ça permet d'avoir quelque chose de plus sympa dans le CSV.

    Pour l'enum Race, j'ai voulu faire comme si le système à l'origine du fichier CSV (ou de la base de données) limitait le nombre de caractères à 8. C'est une contrainte qu'on retrouve encore dans de nombreux programmes.

    En fait, il n'y a aucune raison pour qu'un programme distant utilise les mêmes noms d'enum que mon programme chez moi, et encore moins les mêmes notations.

    Pourquoi je dis ça ? Parce que les fichiers CSV sont surtout utilisés pour transférer de l'information entre deux systèmes distants. Par exemple une boutique animalière à Bordeaux envoie une liste de chiens au format CSV au système central à Paris. En outre, cela permet à des web master tiers (sans lien avec la société) de reprendre les informations facilement, avec un format qui reste lisible.

    Dans un vrai programme, il est assez rare, en effet, de stocker les données dans un fichier CSV. On utilise plutôt des bases de données pour ça.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche
    Test DISC gratuit : http://www.profil4.com

  7. #7
    Expert Confirmé Sénior
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2005
    Messages
    2 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : février 2005
    Messages : 2 638
    Points : 5 912
    Points
    5 912

    Par défaut

    Citation Envoyé par thierryler Voir le message
    Pour l'enum Sexe, j'ai mis un code pour avoir "1" et "2", comme sur le numéro de sécurité social. Ça permet d'avoir quelque chose de plus sympa dans le CSV.

    Pour l'enum Race, j'ai voulu faire comme si le système à l'origine du fichier CSV (ou de la base de données) limitait le nombre de caractères à 8. C'est une contrainte qu'on retrouve encore dans de nombreux programmes.

    En fait, il n'y a aucune raison pour qu'un programme distant utilise les mêmes noms d'enum que mon programme chez moi, et encore moins les mêmes notations.

    Pourquoi je dis ça ? Parce que les fichiers CSV sont surtout utilisés pour transférer de l'information entre deux systèmes distants. Par exemple une boutique animalière à Bordeaux envoie une liste de chiens au format CSV au système central à Paris. En outre, cela permet à des web master tiers (sans lien avec la société) de reprendre les informations facilement, avec un format qui reste lisible.
    Mais du coup l'enum est liée au-dit système. On peut vouloir utiliser l'enum dans un autre système qui a d'autres contraintes.

    Si on a besoin d'utiliser des IDs particuliers (pour cause de limitation de caractère ou pour qu'un autre système puisse charger les données dans un modèle différent) c'est à la couche de sérialisation de s'en occuper (en utilisant des Map par exemple), pas au modèle .

    Contrairement aux idées reçues ça ne demande pas beaucoup plus de temps à écrire et ce n'est pas plus compliqué. L'avantage est qu'on se retrouve avec un modèle simple beaucoup plus facile à lire et à appréhender. Et la spécificité due à un système est isolée du modèle .

  8. #8
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    octobre 2007
    Messages
    3 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 666
    Points : 10 473
    Points
    10 473

    Par défaut

    Effectivement, pris comme ça, tu as raison. Toutefois ça reste un point de détail dans le programme ;-)
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche
    Test DISC gratuit : http://www.profil4.com

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2014, 00h26

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