Cet article se destine aux développeurs Java expérimentés. Il sera également utile aux développeurs .NET même si nous n’abordons que succinctement les outils disponibles pour cet environnement. Nous allons nous intéresser au concept de programmation orientée aspect ainsi qu’à son implémentation avec AspectJ. Nous aborderons également les autres outils du monde Java.
Dans le monde du développement logiciel, le paradigme orienté objet a fait une arrivée fracassante en apportant des concepts qui ont amélioré la productivité des développeurs et la maintenabilité des applications. Aujourd’hui cette approche se retrouve dans tous les secteurs du développement : applications d’entreprise, jeux vidéos, embarqué… La programmation orientée aspect (POA ou AOP en anglais), tente de répondre à une problématique que ne permet pas de couvrir la programmation par objet : la modularisation des fonctionnalités transversales des applications. On parle beaucoup de séparation des préoccupations. La POA permet d’apporter une réponse pragmatique en s’appuyant sur les langages de programmation existants. Il ne faut pas le voir comme une nouvelle approche mais bien comme une extension de la programmation orientée objet. La séparation des préoccupations permet d’éviter un effritement de la conception " pur objet ". Cette déviance intervient dans la phase de réalisation lorsque le développeur se retrouve au pied du mur pour implémenter une fonctionnalité transversale. Il va souvent choisir le plus simple, et pas forcément le plus correct. La POA encapsule ces fonctionnalités pour faciliter le travail du développeur. Pour être un peu plus concret voici les fonctionnalités que la POA permet de simplifier et même d’améliorer : messagerie applicative (log…), gestion de la sécurité (authentification…), persistance (transaction...), cache, etc. le code métier également : logique et domaine. Le nombre de lignes de code est en général réduit lorsqu’un projet a recours à ce paradigme.
Loïc Guillois