Publicité
+ Répondre à la discussion Actualité déjà publiée
Affichage des résultats 1 à 15 sur 15
  1. #1
    Expert Confirmé Sénior
    Avatar de Baptiste Wicht
    Homme Profil pro Baptiste Wicht
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 432
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste Wicht
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 432
    Points : 21 236
    Points
    21 236

    Par défaut Concevoir et implémenter une application modulaire

    Bonjour,

    Je viens de terminer l'écriture d'un article sur la conception et l'împlémentation d'une application modulaire.

    Ce tutoriel présente les différentes étapes de réflexion qui se montrent quand on développe une application modulaire. Un exemple complet d'une petite application modulaire est également disponible.

    Tout commentaire est bienvenu

  2. #2
    Futur Membre du Club
    Inscrit en
    avril 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 16
    Points : 16
    Points
    16

    Par défaut

    Salut,

    Très bon tuto dans l'ensemble... Je compte en présenter un dans quelques temps se basant sur le même principe mais en tirant plus vers OSGi et une implementation de type Extender Pattern...

    Merci en tout cas.
    A plus,

  3. #3
    Membre confirmé
    Avatar de if_zen
    Homme Profil pro Olivier
    Développeur Java
    Inscrit en
    juin 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 32
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2004
    Messages : 268
    Points : 261
    Points
    261

    Par défaut

    Bonjour,

    Bravo et merci pour cet article ! Il est très riche et cela faisait longtemps que je cherchais quelque chose d'aussi clair pour appréhender le principe d'un vrai 'ERP' en Java.

    Merci !

    PS : 2.3 "Vous pouvez bien sûr imaginez" --> imaginer

  4. #4
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 23
    Points : 12
    Points
    12

    Par défaut

    Très bon article. Intéressant et clair.

    Je me demande ce que l'introduction d'OSGI apporterait en termes de simplification de code (la partie chargement de module j'imagine) et d'inconvénients éventuels.

  5. #5
    Expert Confirmé Sénior
    Avatar de Baptiste Wicht
    Homme Profil pro Baptiste Wicht
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 432
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste Wicht
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 432
    Points : 21 236
    Points
    21 236

    Par défaut

    Merci pour vos commentaires

    Pour ce qui est d'OSGi, ça permettrait de ne pas considérer certaines questions, comme le chargement des modules, la spécification des interfaces et déléguer ces problèmes au conteneur OSGI.

    OSGI permet de faire des choses plus évoluées que ce que l'on voit ici, mais je l'ai trouvé assez lourd et il ne m'a pas tout à fait plu.

    Citation Envoyé par if_zen Voir le message
    PS : 2.3 "Vous pouvez bien sûr imaginez" --> imaginer
    Merci pour la correction

  6. #6
    Membre à l'essai
    Inscrit en
    décembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 17
    Points : 20
    Points
    20

    Par défaut

    Félicitations pour ce très bon tutoriel qui m'aurait bien servi quelques mois en arrière sur un projet d'études !

    Cela dit, je trouve qu'utiliser les annotations en lieu et place ou en complément des interfaces est une bonne approche pour gérer la modularité, non ?

    M'enfin bon, ça reste très cosmétique comme remarque !

    Merci encore pour cet article,

  7. #7
    Expert Confirmé Sénior
    Avatar de Baptiste Wicht
    Homme Profil pro Baptiste Wicht
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 432
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste Wicht
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 432
    Points : 21 236
    Points
    21 236

    Par défaut

    Citation Envoyé par jinh68 Voir le message
    Félicitations pour ce très bon tutoriel qui m'aurait bien servi quelques mois en arrière sur un projet d'études !

    Cela dit, je trouve qu'utiliser les annotations en lieu et place ou en complément des interfaces est une bonne approche pour gérer la modularité, non ?

    M'enfin bon, ça reste très cosmétique comme remarque !

    Merci encore pour cet article,
    Merci

    Effectivement, les annotations peuvent être un excellent moyen de spécifier les modules

    Personnellement, pour mon projet personnel qui utilise la modularité, j'ai fait un mix des deux, j'ai par exemple une annotation PrimaryModule pour indiquer que le module est primaire, mais la classe étant aussi IModule pour indiquer que c'est un module.

  8. #8
    Invité de passage
    Inscrit en
    janvier 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : janvier 2010
    Messages : 1
    Points : 1
    Points
    1

    Par défaut les évenements

    bonjour,
    je vous félicite pour ce tutorial.
    je suis débutant en java et j'ai suivit à la lettre les étapes de votre tutorial et ça marche.
    mnt je veux ajouter un module qui permet de récupérer un évènement de la classe Coreview (par exemple un clique sur un bouton) et d'effectuer des traittement dans le module à travers le viewmanager.

    puisque le viewmanaager dans le tuto permet uniquement de faire des actions sur les contrôles de coreview mais ne permet pas d'ajouter des nouveaux conroles et de gerer les évènements associés dans des modules.

    pouvez vous me guider un peu?
    merci

  9. #9
    Expert Confirmé Sénior
    Avatar de Baptiste Wicht
    Homme Profil pro Baptiste Wicht
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 432
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste Wicht
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 432
    Points : 21 236
    Points
    21 236

    Par défaut

    Citation Envoyé par med_aboub Voir le message
    bonjour,
    je vous félicite pour ce tutorial.
    je suis débutant en java et j'ai suivit à la lettre les étapes de votre tutorial et ça marche.
    mnt je veux ajouter un module qui permet de récupérer un évènement de la classe Coreview (par exemple un clique sur un bouton) et d'effectuer des traittement dans le module à travers le viewmanager.

    puisque le viewmanaager dans le tuto permet uniquement de faire des actions sur les contrôles de coreview mais ne permet pas d'ajouter des nouveaux conroles et de gerer les évènements associés dans des modules.

    pouvez vous me guider un peu?
    merci
    Pour ça, ça sort un peu du cadre. Comme je l'ai dit dans l'article, cette structure est très basique.

    Pour ce que vous voulez faire, voici ce que je ferais :
    • Modifier CoreView pour permettre de modifier le composant principal ==> Ajouter une méthode setMainComponent() dans ViewManager qui permet de modifier le composant principal (contentPane) de CoreView.
    • Modifier le composant principal depuis le module. On a ainsi le contrôle sur le composant.


    Par contre, avec ça, si 2 modules veulent modifier le composant principal, ils vont se marcher dessus. Une autre solution est de mettre un JTabbedPane comme content pane de CoreView et d'ajouter une méthode sur ViewManager qui permette de rajouter un onglet au tableau. Comme ça, les modules ne se marcheront pas dessus.

    J'espère avoir été clair

    Sinon, tu peux aussi regarder http://baptiste-wicht.developpez.com...tting-started/ qui permet de développer une application modulaire avec une librairie beaucoup plus complète.

  10. #10
    Membre régulier
    Inscrit en
    mars 2009
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : mars 2009
    Messages : 146
    Points : 89
    Points
    89

    Par défaut

    Merci beaucoup pour ton tutorial...

  11. #11
    Membre actif Avatar de aljessy
    Homme Profil pro Guy Alexis
    Développeur Java
    Inscrit en
    octobre 2010
    Messages
    275
    Détails du profil
    Informations personnelles :
    Nom : Homme Guy Alexis
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 275
    Points : 156
    Points
    156

    Par défaut

    Excuse moi mais j'ai un peu du mal à appréhendé le principe de l'application modulaire. J'ai lu votre tutoriel sur le sujet et j'aimerais savoir:
    1- Es ce que le différents module constitue tous de petit application developper en java? d'après moi ce n'est pas le cas
    2- Comment générer le jar d'un package si je suppose que chacun de mes modules sont réuni dans des packages
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  12. #12
    Expert Confirmé Sénior
    Avatar de Baptiste Wicht
    Homme Profil pro Baptiste Wicht
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 432
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste Wicht
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 432
    Points : 21 236
    Points
    21 236

    Par défaut

    Ce ne sont pas des applications, dans le sens, ou ils ne pourraient rien faire tout seul (sans l'application de base). Par contre, ils sont chacun dans un fichier .jar séparé.

    Si par package, tu entends l'application, tu ne peux plus utiliser un seul gros .jar. Tu auras plusieurs jar, un exécutable pour l'application, des jars pour les modules et éventuellement des jars pour des librairies éventuelles. Pour livrer ton application, tu peux faire une archive avec tout ça.

  13. #13
    Membre actif Avatar de aljessy
    Homme Profil pro Guy Alexis
    Développeur Java
    Inscrit en
    octobre 2010
    Messages
    275
    Détails du profil
    Informations personnelles :
    Nom : Homme Guy Alexis
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 275
    Points : 156
    Points
    156

    Par défaut

    je parlais de petit application mais sans classe main. Es ce que les modules sont de petite application mais sans la classe main?
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  14. #14
    Expert Confirmé Sénior
    Avatar de Baptiste Wicht
    Homme Profil pro Baptiste Wicht
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 432
    Détails du profil
    Informations personnelles :
    Nom : Homme Baptiste Wicht
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 432
    Points : 21 236
    Points
    21 236

    Par défaut

    Oui, on pourrait dire ça.

  15. #15
    Candidat au titre de Membre du Club
    Homme Profil pro Amaury Canton
    Inscrit en
    novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Nom : Homme Amaury Canton
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : novembre 2013
    Messages : 6
    Points : 11
    Points
    11

    Par défaut Petite correction

    Bonjour Baptiste Wicht,

    Tout d'abord je tiens à vous féliciter pour ce tuto qui est très bien expliqué (et moi même débutant dans la programmation modulaire avec Java ceci m'a bien aidé).

    Mais si je peux me permettre, quand vous chargez votre Module, je vous conseillerai quand même une petite sécurité :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public synchronized Class loadClass(String className, boolean resolveIt) throws 
    ClassNotFoundException { 
    Class result;
    Byte []classData;
     
     // 1) Cherche dans le cache si la classe n’a pas déjà été chargée 
    result = (Class) classes.get(className); 
    if(result != null)
    return result;
     
     // 2) Utilisation du primordial CL pour voir s’il s’agit d’une classe 
    // Systeme. Très important de faire ce test ! Sinon on pourrait remplacer 
    // Le security manager ! 
    try {
     result = super.findSystemClass(className);
     return result;
    } catch(ClassNotFoundException e) {
    System.out.println("Pas une classe système !");
     }
    .
    .
    .
    Au moins là vous êtes sur de ne pas "corrompre" votre programme java.
    Si vous appelez votre module System (par exemple) sans faire ce test de sécurité, il se peut que vous ne pourriez plus utiliser les méthodes de System

    Après comme j'ai dit, je débute dans ce genre de programmation et il se peut que je me trompe sur l'explication... N'hésitez pas à me le faire remarquer

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
  •