Résumer ce qu'est la programmation orienté aspect n'est pas aisé de rique d'être trop réducteur. Ce livre approche le concept tranquillement et va jusqu'au bout sans ni se répéter ni vous lacher dans des cimes de difficultés. De plus il est clair que les auteurs maitrise leur sujet. Bref c'est un très bon bouquin. Mais bon je me dois de résumer, ne serait-ce que pour faire gagner du temps. Biensûr il suffirait d'aller voir sur wikipedia : , mais je vais tout de même le faire à ma sauce.

Un des problèmes majeurs de la programmation est de conserver une vue d'ensemble et de bien séparer différents aspects d'un programme. La partie "métier" est ce que logiciel fourni de spécifique à l'activité pour laquelle il a été écrit, par exemple toutes les formules utilisées pour un logiciel de crédit bancaire font partie du métier. Tout le reste autours est un aspect technique propre à l'outil informatique : l'interface hommme machine, le stockage des données, l'audit des actités, etc... La programmatio orienté aspect se propose de séparer les différents aspects les un des autres et de les greffer ( on parler de tissage de code ) sur la partie métier. Vu en code java cela donne du code java qui ne décrit que des objets métier ( Compte bancaire, Client, Produit financier ... ) et de tisser dessus tout ce qui en fait un logiciel : la partie IHM, la partie persistance etc... Pour un programmeur une autre vision existe : pour moi un aspect est la factorisation d'une fonction qui s'applique à des parties du code que l'on peut décrire de matière abstraite. Par exemple "Toutes les fonctions doivent être auditées" est l'application de l'aspect Audit sur toutes les fonctions. Ou bien "Toutes les fonctions donnant accès à un objet Compte doivent être autorisées uniquement au banquier" qui est l'aspect autorisation bancaire sur les comptes. ou encore "Toutes les données doivent ete stoquées à l fois sur le disque local et sur une application distante" qui est ici l'aspect persistance appliqué aux données.

Bon tout cela c'est bien beau mais n'est-ce pas que la fumée ? Eh bien non. La programmation oirenté aspect nécessite donc de nouveaux outils pour regéner du code, des pseudo binaires ou des bianires compatibles eux avec l'existant. Il existe plusieusr environnements de développement en orienté aspect que les auteurs du bouquin en question connaissent bien puisqu'il en ont fait un (JAC). D'ailleurs ils ne dénigrent pas les autres (AspectJ, JBoss AOP, AspectWerkz) et leur accordent plus de place même que JAC. Elle apporte très clairement un plus. Un plus au niveau compréhension du code car elle permet de voir plus vite le sens d'une partie de code puisque le code est réduit à un aspect. Un plus au niveau de la fiabilité car il est évident que le tissage automatique n'est pas sensibles aux erreurs de frappe ou aux étourderies Pour ce qui est des performancaes cela dépend mais il est possible de faire en sorte que cela ne dégrade pas les performance du tout (compilation statique). Et un plus au niveau modélisation.