Débat : De l'intérêt de la Programmation Orientée Aspect (AOP)
Partagez votre expérience et donnez votre avis

Le , par Alec6, Membre averti
Bonjour

Je découvre avec plaisir la programmation orientée aspect qui semble offrir un niveau supérieur d'asbstraction sur l'OO.

Je me demande si ce concept va véritablement se développer, notamment est ce les framework ou les langages incrémentant les langages OO actuel qui seront les plus portés.
Peut etre peut on produire des bibliothèques aspect ??

Est ce que vous utilisez déjà cette technologie dans vos projets.

Y a t-il un niveau d'abstraction supérieur ?

Un peu de lecture :


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de _skip _skip - Expert éminent http://www.developpez.com
le 11/06/2009 à 13:43
Les enjeux ou le fonctionnement? Quelques liens ont été postés sur la première page de ce topic.
Moi je le vois personnellement pas comme une nouvelle approche de conception puisque ça change pas la façon dont je réfléchis une application. Ca introduit juste certaines facilités qui permettent d'alléger mon code, les transactions étaient l'exemple principal, l'exemple posté par davcha en .Net en est aussi un.
Avatar de mickilous mickilous - Membre régulier http://www.developpez.com
le 11/06/2009 à 17:31
Citation Envoyé par oLie  Voir le message
J'aurais tendance a penser qu'une bonne réflexion de conception pourrais résoudre ces problèmes

Citation Envoyé par oLie  Voir le message
J'ai l'impression qu'on ne constate son efficacité que sur un aspect "maintenance" de code à partir d'un code existant, mais je vois pas bien comment l'utiliser en partant de zéro sans interférer avec des 'modèles' existants...a moins de n'avoir toujours pas compris.

Il ne faut pas voir l'AOP comme un simple ajout de comportement à un problème mal modélisé et/ou conçu.

Dans une application, il y a du code métier et du code technique (de la plomberie).
Généralement le code métier répond à des préocupations verticales tandis que le code technique répond à des préocupations horizontales (on le retrouve partout).

Aujourd'hui, grâce à l'AOP, il est très aisé de concevoir une application et puis de la développer sans avoir le mélange métier/plomberie. La plomberie pouvant étant isolée dans des aspects.
Exemples (comme déjà cité) : Transaction, Sécurité, Logging...

Nombre de très grands noms du développement Java sont aujourd'hui convaincus... pourquoi pas vous ?
Avatar de matoze matoze - Membre régulier http://www.developpez.com
le 15/06/2009 à 15:59
Petite annotation concernant mon dernier post :
J'aurais du appeler la partie "inconvénients" -> "risques".

Je suis d'accord avec le point de vue de Tommy31 sur ce post.
Avatar de - http://www.developpez.com
le 19/06/2009 à 20:23
J'en avais touché deux mots ici, mais mercredi dernier a eu lieu une présentation sur l'AOP en .NET, à Paris, dans le cadre des réunions ALT.NET.



Les slides sont disponibles ici si ça vous intéresse.
Avatar de OWickerman OWickerman - Membre averti http://www.developpez.com
le 20/06/2009 à 5:29
Citation Envoyé par Keihilin  Voir le message
En bref, rien de révolutionnaire...Juste un nom sur une approche de réflexion utilisée en POO depuis longtemps.

Globalement, j'suis d'accord, mais la, en plus, on a des outils adaptés pour mettre en place le fruit de cette réflexion, associés à un formalisme nouveau créé pour formuler des réponses à des problèmes dont l'émergence est relativement récente
Avatar de JeitEmgie JeitEmgie - Membre expert http://www.developpez.com
le 20/06/2009 à 11:44
Procedural programming -> functional abstraction
OOP -> object abstraction
AOP -> concern abstraction

n'essayez pas de mettre l'AOP dans le même plan que l'OOP : par définition c'est une dimension transversale…

c'est comme représenter un volume sur une feuille de papier en utilisant des techniques de projection en perspective… ce n'est pas parce que le cerveau imagine un volume en regardant le dessin que le dessin est un volume (… "ceci n'est pas une pipe" …)

il est sans doute compréhensible que d'aucuns ne percoivent pas tout le potentiel de l'AOP et tentent de la réduire à un machin en plus lié à l'OOP : la plupart des intervenants semblent être ou des développeurs ou des analystes…
or l'AOP adresse principalement des problèmes d'architecture logicielle… et en particulier les problèmes qui sont repoussés hors du champ de l'implémentation immédiate dans la phase du projet où l'on élimine les dilemnes pour des raisons opérationnelles… ("underdesign/overdesign issues") càd avant même que l'on fasse intervenir l'analyste-développeur…

donc quand l'analyste-dévoppeur est confronté à l'AOP c'est souvent dans des cas très limités qui ne laissent apparaître que le côté "trucs et astuces" du concept… d'où la propension à toujours revenir avec les mêmes exemples du logging, de la gestion des transactions… et donc de renforcer l'idée que l'AOP ne résoud pas de problèmes nouveaux… alors même que ce n'est pas son propos qui est plutôt de résoudre d'une meilleure manière certains problèmes (les "crosscuting concerns")…

et ce n'est pas parce que les outils AOP les plus connus s'utilisent avec des langages OO que l'AOP en soi nécessite un langage OO…
rien n'interdit de faire de l'AOP sur du code procédural…

d'ailleurs il ne faut pas perdre de vue que l'un des effets d'un aspect lorsqu'utilisé sur un code OO est justement de casser l'encapsulation qui est fournie par la notion de classes d'objets dans l'OOP…
Avatar de souviron34 souviron34 - Expert éminent sénior http://www.developpez.com
le 20/06/2009 à 16:53
il me semblait qu'on avait déjà dscuté de ce sujet, mais je n'arrive pas à remettre la main sur le thread en question..

Et je ne vais pas retaper ce que j'ai déjà tapé..

Si quelqu'un le retrouve...

En gros : l'apsect me semble extrêmement dangereux, et n'est qu'un "gizmo" de plus, principalement pour faire "faire neuf" , à mon avis...
Avatar de Hephaistos007 Hephaistos007 - Membre expert http://www.developpez.com
le 20/06/2009 à 21:28
J'ai donné mon avis sur la question sur la première page de ce topic il y a bientôt 5 ans de cela

@souviron34 :

Tu dis que l'AOP cherche à faire du neuf avec du vieux. Ma question est simple : comment gérait-on les "aspects" avant ?
Avatar de souviron34 souviron34 - Expert éminent sénior http://www.developpez.com
le 21/06/2009 à 0:43
Citation Envoyé par Hephaistos007  Voir le message
J'ai donné mon avis sur la question sur la première page de ce topic il y a bientôt 5 ans de cela

@souviron34 :

Tu dis que l'AOP cherche à faire du neuf avec du vieux. Ma question est simple : comment gérait-on les "aspects" avant ?

aujourdhui je répondrais rapidement, tant que je n'ai pas retrouvé le bout de thread où on évoquait les pros & cons :

en faisant une bonne analyse

Que ce soit en procédural ou en objet, l'important est le découpage ..

Et l'analyse..

Une bonne analyse, même en programmant en C, te permet , grâce aux TAD et aux void*, et aux méthodes enregistrées, tout un tas de choses..
Avatar de Hephaistos007 Hephaistos007 - Membre expert http://www.developpez.com
le 26/06/2009 à 13:48
Citation Envoyé par souviron34  Voir le message
Que ce soit en procédural ou en objet, l'important est le découpage ..

Et bien justement ! Le constat de départ est que certaines choses ne peuvent pas être découpées et regroupées à un unique endroit. Du moins, pas avec le procédural ou l'objet. C'est la technique du tissage qui a alors permis de contourner ce problème et d'arriver à modulariser des choses "inmodularisables".
Avatar de Baptiste Wicht Baptiste Wicht - Expert éminent sénior http://www.developpez.com
le 09/07/2009 à 11:19
Personnellement, j'ai commencé à utiliser la programmation orientée aspect, il y a peu et mêmes si je n'utilise pas encore la totalité des possibilités de cette technologie, je suis tout à fait convaincu des avantages qu'elle apporte.

Pour définir des préoccupations transversales telles que la journalisation ou les transactions, c'est une technologie extrêmement utile et relativement simple une fois qu'on en comprend les différents concepts.
Offres d'emploi IT
Chargé(e) de mission au CERT Société Générale (H/F)
Société Générale - Ile de France - Val-de-Marne
Architecte fonctionnel et applicatif (H/F)
Société Générale - Ile de France - Val-de-Marne
Expert sécurité en audit d'applications (H/F)
Société Générale - Ile de France - Val-de-Marne

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -