, Baptiste Wicht Bonsoir,
je suis en train de travailler sur la "bundlisation" de JTheque Core. Comme le core proposait un certain nombre de services, j'ai commencé par découper le gros jar qu'était le core en une série de bundles offrant tous un service bien précis.
Je me suis vite rendu compte que le découplage de mes différents services était à peu près nul. J'avais un nombre énorme de dépendances pour chaque bundle et pire encore, j'avais un grand nombre de dépendances cycliques, soit directs soit indirects.
Pour information, une dépendance cyclique directe est une situation dans laquelle un bundle X dépend d'un bundle Y qui dépend lui-même de X. Une dépendance cycle indirecte est la situation dans laquelle X dépend Y, Y dépend de Z et Z dépend de X. Je parle ici de bundles, mais cela peut concerner des projets, des classes ou des packages.
A noter que les différentes techniques que je vais présenter s'appliquent également pour des dépendances entre composants non-OSGi, les principes sont tout à fait les mêmes.
Vous devez être identifié pour poster un commentaire.
, Baptiste Wicht Maintenant que nous avons vu comment représenter un module au niveau Java, nous allons voir comment charger dynamiquement ces modules dans notre application.
Au niveau de Java, les classes sont chargées depuis des ClassLoader qui comme son nom l'indique est un chargeur de classes.
Vous devez être identifié pour poster un commentaire.
, Baptiste Wicht Maintenant que nous avons vu en détails les caractéristiques des modules, nous allons voir comment mettre en oeuvre un module.
Il nous faut donc un conteneur pour notre module qu'on puisse ensuite charger depuis notre application principale.
Nous allons maintenant voir ce que sera un module au niveau Java.
Vous devez être identifié pour poster un commentaire.
, Baptiste Wicht Après avoir décrit dans le premier billet en quoi consistait une application modulaire et ce qu'était un module, nous allons maintenant nous pencher plus spécialement sur les modules.
Nous avons dit qu'un module permettait de rajouter des fonctionnalités à l'application principale. Mais avant de se lancer dans le moindre code, il va falloir définir exactement ce que seront nos modules, ce qu'ils pourront faire, s'il y aura plusieurs types de modules, ...
C'est ce que nous allons voir dans ce billet.
Vous devez être identifié pour poster un commentaire.
, Baptiste Wicht Bonjour,
Je suis actuellement en train de développer une application modulaire. Au vu des problèmes que j'ai rencontré pour développer la partie modules et le peu d'informations que j'ai pu trouver sur le net, j'ai pensé que faire une série de billets sur le sujet ne pourrait qu'être profitable à tout le monde.
Dans ce billet, je vais commencer par parler des bases de la conception d'une application modulaire, c'est-à-dire pour commencer, ce qu'est une application modulaire, ce qu'est un module et bien entendu ce que ça apporte. Dans les prochains billets, je vais essayer de décrire les différentes problématiques inhérentes au sujet et leurs résolutions. Si ces billets nécessitent du code, ces exemples de code seront en Java, car c'est le langage que j'ai choisi pour développer mon application, mais les concepts peuvent s'appliquer à tous les langages.
Bien entendu, je ne me considère pas comme un pro dans les applications modulaires et les différentes informations que je vais donner au fil des billets n'est que ma façon de voir, il y en a certainement d'autres et des meilleures, donc si vous n'êtes pas d'accord avec moi ou si vous pensez qu'on peut faire mieux, n'hésitez pas à réagir en commentant ces billets
Vous devez être identifié pour poster un commentaire.
Avec ce blog, je vais vous tenir au courant de l'avancée de mes différents projets et de mes nouveaux tutoriels. Je vais aussi essayer de publier des news sur l'informatique en général et sur Java.
My English website
| Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Copyright © 2000-2012 - www.developpez.com