Initiation à la Programmation Orientée Aspect

Par Mikaël 15 sept, 2008

Introduction
Le but de cet article est de vous donner un aperçu des possibilités offertes par la Programmation Orientée Aspect, ou Aspect Oriented Programming (AOP). En partant d’un exemple concret, nous définirons les concepts de Weaver, PointCut, JoinPoint, Advice, inter-type declaration, … Nous parlerons ensuite des usages possibles de cette technologie dans vos projets, pour terminer [...]

Introduction

Le but de cet article est de vous donner un aperçu des possibilités offertes par la Programmation Orientée Aspect, ou Aspect Oriented Programming (AOP). En partant d’un exemple concret, nous définirons les concepts de Weaver, PointCut, JoinPoint, Advice, inter-type declaration, … Nous parlerons ensuite des usages possibles de cette technologie dans vos projets, pour terminer par quelques réflexions sur les paradigmes de programmation.

Problèmes

Imaginons que vous arrivez sur un projet Java avec un lourd passé, comportant plusieurs dizaines de milliers de lignes de code pas ou peu commentées, des styles de codes hétérogènes, des dizaines de classes de plus de 3000 lignes, des interactions alambiquées entre le client, le serveur, la base de données, les applications exernes, le tout avec des traitements multithreads. Les “développeurs” coupables de ces méfaits ne sont évidemment plus là, et vous êtes chargé de la maintenance de cette magnifique application qui est part ailleurs critique pour ses utilisateurs. Cette situation périlleuse (toute ressemblance avec des personnes ou des faits ayant existé ne serait que pure coïncidence) vous impose de

  1. Ne surtout toucher à rien tant que ça fonctionne
  2. Tracer. Les développeurs précédents n’ayant évidemment pas pris le soin d’utiliser un framework de logging tel que Log4J, vous n’avez pas la moindre idée de ce qui se passe lorsque vous lancez cette &%°@ d’application.
  3. Analyser les performances. Vous aimeriez bien savoir quelles portions de code la font tant ramer, car vos utilisateurs réclament depuis longtemps des améliorations à ce niveau.
  4. Mettre de l’ordre. Pour cela, il serait utile de trouver toutes les violations des règles d’architecture. (par exemple, ne pas appeler de DAO depuis une Servlet)
  5. Refaire votre CV pour pour pouvoir quitter ce traquenard au plus vite. Ca fera toujours bien de pouvoir mettre “AOP” dedans.

Voir les solutions dans la suite…

(8) Commentaires Catégories : apple, article, games, high-tech

Spring RCP 1.0 est sorti

Par Mikaël 20 mar, 2008

Le framework Java Spring Rich Client Platform est enfin arrivé à une version stable 1.0.
Cette release était fortement attendue par tous les utilisateurs de ce magnifique framework d’écriture de clients riches Swing. En effet, la précédente version stable 0.2.1 datait de Septembre 2006.
Si vous avez à développer un nouveau projet en client riche, je vous [...]

Spring Framwork

Le framework Java Spring Rich Client Platform est enfin arrivé à une version stable 1.0.

Cette release était fortement attendue par tous les utilisateurs de ce magnifique framework d’écriture de clients riches Swing. En effet, la précédente version stable 0.2.1 datait de Septembre 2006.

Si vous avez à développer un nouveau projet en client riche, je vous conseille fortement d’étudier ce framework avant de vous jeter dans les bras d’Eclipse RCP ou de Netbeans RCP, ou pire d’essayer de réécrire un framework maison.

Les principales fonctionnalités sont :

  • Binding bidirectionnel de composants graphiques sur vos objets métier
  • Gestion de formulaires avec validation de contraintes, affichage des erreurs de validation sur les champs, commit et rollback
  • Modèle de commandes
  • Configuration de tous les labels, commandes, icônes par fichiers de ressources
  • Sécurisation des commandes par Acegi (un autre sous-projet Spring)
  • Intégration par simple paramétrage avec plusieurs gestionnaires de vues : docking avec Jide ou VLDocking, fenêtre Mdi classiques, vues fixes, …
  • Aucun lien avec un IDE quelconque
  • Extrêmement configurable. Vous n’êtes absolument pas obligé de prendre tout le framework, mais juste les parties qui vous intéressent.

Et vous bénéficiez bien sûr du framework Spring pour gérer vos services métier et configurer le comportement de votre application.

Le gros point noir est le manque de documentation, mais avec cette release on peut espérer qu’elle va rapidement s’étoffer.

J’utilise ce framework en version 0.2.1 depuis plus d’un an sur un projet important (plus de 1000 j.h, 300 utilisateurs) et je dois dire que je suis extrêmement satisfait des services qu’il me rend.

(5) Commentaires Catégories : article, high-tech, logiciel, news

Le framework Java/Groovy Grails version 1.0 est sorti !

Par M-L 19 fév, 2008

G2One et l’équipe Grails viennent de sortir il y a peu la version 1.0 du framework web Grails basé sur le langage dynamique Java/Groovy, et utilisant en son sein les frameworks Spring (conteneur léger pour la couche logique et métier) et Hibernate (couche persistance). Ce framework orienté web s’inspire fortement du framework Rails (Ruby on [...]

G2One et l’équipe Grails viennent de sortir il y a peu la version 1.0 du framework web Grails basé sur le langage dynamique Java/Groovy, et utilisant en son sein les frameworks Spring (conteneur léger pour la couche logique et métier) et Hibernate (couche persistance). Ce framework orienté web s’inspire fortement du framework Rails (Ruby on Rails) avec notamment la notion de convention (vs configuration) permettant de n’avoir que le minimum de configuration nécessaire, un vrai bonheur pour le développeur. Il permet un gain de productivité dans le développement d’applications web sur la plateforme Java, tout en permettant de protéger son existant et son investissement : mapping Hibernate ou JPA, configuration Spring, librairies Java, serveurs d’application, etc.

Grails est une solution ouverte qui laisse un grand choix au niveau de l’architecture : application full-Grails, Groovy/Java, où même la partie présentation peut être débranchée au profit d’une intégration GWT ou Flex grâce à l’utilisation de plugins dédiés. Cette version finale apporte de nouvelles fonctionnalités comme un DSL (Domain-Specific Language) pour un mapping objet-relationnel plus poussé, l’ajout d’un mécanisme d’intercepteurs et d’URL mapping avancé, et encore plus de facilité pour exposer des ressources REST.

La sortie de la version 1.0 risque de donner une nouvelle dimension au projet, et il suffit de regarder l’activité de la liste de diffusion pour réaliser à quel point ce framework a de beaux jours devant lui.

Le seul bémol concernerait la prise en charge des IDE. Il existe des greffons pour Eclipse et NetBeans mais ils sont encore trop jeunes. Le seul greffon vraiment avancé à l’heure actuelle est celui pour IDEA IntelliJ (IDE excellent mais qui n’est malheureusement pas OpenSource).

Site : Grails

Via linuxfr.org, application-servers.com

(1) Commentaire Catégories : high-tech, logiciel, news