Discussion:Programmation orientée aspect

Dernier commentaire : il y a 12 ans par S.dubourg dans le sujet Langage orienté objet par opposition à langage impératif ?
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Utiliser l'acronyme POA, ie. la françisation d'AOP, créé une confusion avec le POA de CORBA (portable object adapter). NonNobis 25 mai 2005 à 11:25 (CEST)Répondre

Ca crée peut être une confusion pour le spécialiste, mais il peut corriger de lui même, pour les autres je pense que ca pause moins de problème (une seul occurence de AOP/PAO en intro ca reste dans le contexte). Sinon autant écrite entrièrement programmation orientée aspect qui règle tout. →þaצo 25 mai 2005 à 14:52 (CEST)Répondre
adopté. Faut encore étoffer et revoir mais maintenant il manque surtout qq ex. de code, et 1 ou 2 schémas. NonNobis 25 mai 2005 à 15:20 (CEST)Répondre
pour les shéma, je peut en faire. J'en et vue quelque un, et c'est vrai qu'ils présente facilement le consepte. →þaצo 25 mai 2005 à 17:43 (CEST)Répondre
cool. oui, surtout avec ce jargon. Je peux m'occuper des exemple de code dans ce cas. NonNobis 25 mai 2005 à 18:43 (CEST)Répondre
enfin, je peut le faire, si tu n'était pas parti pour :) , si tu était motivé pour fair les shémas et les exemples, il vaut mieu que tu fasse les deux :). C'est toi qui vois →þaצo 25 mai 2005 à 21:52 (CEST)Répondre
arf'... :) ok. NonNobis 26 mai 2005 à 15:03 (CEST)Répondre

IOC et AOP

modifier

Perso je ne vois pas trop le rapport entre AOP et IOC. Pour moi les deux visent effectivement à un meilleur découplage mais ce sont deux choses bien différentes. --xerus 12 août 2005 à 11:49 (CEST)Répondre

pareil :D ; j'avais même pas fait gaf :/ ~ þayo ♪♫ 12 août 2005 à 17:09 (CEST)Répondre
avec l'ajout d'un lien vers IOC (et se définition) ça ne me choque plus. C'est plutôt claire qu'il y a un rapport. ~ þayo ♪♫ 22 septembre 2005 à 11:18 (CEST)Répondre
bof, moi je ne vois toujours pas. Spring utilise à la fois l'IOC et l'AOP mais on peut très bien faire de l'IOC sans AOP ou de l'AOP sans IOC. --xerus 22 septembre 2005 à 13:44 (CEST)Répondre
Bin si on se dit qu'un aspect c'est du code qu'un object utilise pour aquerire une certaine propriété, cela revient a dir (pour par exemple l'aspect "persistance"), que le code "persistance" de l'objet a été injecté dans l'aspect "persistance". On peut se dire que la programmation orientée aspect, c'est l'utilisation du principe d'IOC en regroupant les fonctions de même "aspect". ~ þayo ♪♫ 22 septembre 2005 à 19:32 (CEST)Répondre
heu sinon, c'est quoi Spring ? ~ þayo ♪♫ 22 septembre 2005 à 19:34 (CEST)Répondre
Ben pour moi l'IOC ce n'est pas çà. Ce n'est pas du code qui est injecté avec l'IOC mais des dépendances (ie des références). En gros au lieu que l'objet aille chercher lui même ces dépendances, un conteneur lui donne ses références. C'est beaucoup moins compliqué techniquement que l'AOP. Mais cela simplifie grandement les tests et surtout permet un moindre couplage. cf http://www.martinfowler.com/articles/injection.html M. Sinon Spring c'est un framework web qui se base sur l'IOC et l'AOP --xerus 22 septembre 2005 à 21:07 (CEST)Répondre
Ok, du coup ça n'a vraiment aucun rapport, c'est comme tu dis deux techniques qui peuvent se compléter, mais c'est tout. ~ þayo ♪♫ 22 septembre 2005 à 23:41 (CEST)Répondre
l'AOP est basé sur une IOC - dans les sens Dependency Inversion Principle de l'article [Inversion de contrôle], par ailleurs pas assez explicite - parce qu'elle inverse les dépendances d'un système logiciel classique : par exemple une classe métier Java va utiliser des API de Log, d'accès SGBD, etc. : on a une dépendance 1-N entre 1 classe métier et N classes transverses. L'AOP permet de débarasser la classe métier de ses dépendendances en les réifiant en N Aspects séparés qui maintiennent chacun une dépendance 1-1 entre l'aspect transverse et la classe métier. On a donc une inversion des dépendance, effectiveiement appellé peut être "abusivement" IOC, mais c'est bien l'idée centrale de l'AOP. Après, le côté "injection de code", ça relève de la technique plus que du concept, c'est effectivement un moyen de réaliser l'IOC dans le cadre de l'AOP. NonNobis 24 septembre 2005 à 16:38 (CEST)Répondre

C'est normal que j'y capte rien ?

modifier

Salut à tous,

Je pose la question, parce que je suis en fin d'études informatique (donc a priori qualifié) et que j'ai essayé de lire pas mal d'articles, meme en anglais et je comprends toujours pas comment on fait de la POA.

J'ai compris grace à un article anglais (AOP without buzzword) quel était l'interet, mais dans tout les autres articles, y compris celui ci (je m'excuse car vous avez du faire un effort tout de meme), en finissant de lire, j'en sais toujours pas plus sur cette technique. (pas d'exemple, pas d'explication des mots hors du commun des mortels, ...)

Enfin bon j'ai trouvé un lien vers un article très complet au moins ici c'est déjà ca.

Cordialement :)

Mamelouk 24 septembre 2005 à 21:08 (CEST)Répondre

Bonjour, surement n'est-il pas assé explicatif, et si tu n'a pas fait de genie logiciel c'est vrai que ça doit être du charabia :) merci pour le commentaire, ça permet de savoir ou en est l'article. ~ þayo ♪♫ 24 septembre 2005 à 22:03 (CEST)Répondre
En effet je suis + informaticien/automaticien, mais passionné par l'informatique en général. C'est sympa de tomber sur des francophones qui s'enervent pas du premier coup :) Sinon, je devrais peut etre d'abord passer par un approfondissement des design pattern avant de comprendre tout ca, mais c'est vrai que c'est dommage que ce soit pas encore accessible à tous. Du coup, je reviendrai quand je serai plus qualifié pour dire ce que je comprends pas dans l'article. A++ Mamelouk 24 septembre 2005 à 23:28 (CEST)Répondre
il est clair que ce genre d'article est technique, néanmoins "pas d'explication des mots hors du commun des mortels" et le Lexique c'est koi? NonNobis 16 octobre 2005 à 14:34 (CEST)Répondre
un lexique c'est une explication de chacun des mots séparements, hors de leur contexte...


Personnellement je suis retourné voir la toute première version de cet article, qui date donc de 2003, et je l'ai trouvé bien plus claire que la version actuelle, qui se perds en mots techniques et en phrases compliquées. Je reste cependant certain que la première version est incomplète, mais elle a cependant le mérite d'apporter une réponse claire à une personne se demandant "qu'est-ce que l'AOP?". Il faudrait aller au plus clair.

Problème dans la définition du point de jonction

modifier

Dans la définition du point de jonction on peut lire "il n'est pas possible [...] d'insérer un greffon au milieu du code d'une fonction".

Ceci est faux. Selon les langages il peut très bien être possible d'insérer un greffon dans le code d'une fonction. Le langage de point de coupe d'AspectJ permet par exemple d'insérer un greffon avant l'accès à un champ.

En fait, les points de jonctions dépendent du langage de point de coupe. Par exemple, le langage de point de coupe d'AspectJ ne permet pas de tisser un greffon avant (ou après, ou autour) d'une boucle. Une boucle n'est donc pas un point de jonction. Mais il est tout à fait envisageable qu'un autre langage (ou une prochaine version d'AspectJ) permette ce genre d'aspect, et donc les boucles deviendraient des points de jonction. --Romain.Delamare (d) 10 octobre 2008 à 11:11 (CEST)Répondre

Comme la commande patch?

modifier

Bonjour. Je ne suis pas sûr d'avoir compris l'article, donc voyez ceci comme une demande d'éclaircissement. Voici ce que j'en retiens : l'AOP est un moyen pour ne pas toucher aux briques logicielles qu'on prend sur l'étagère au moment de la création d'un logiciel pour une application métier. Si ces briques logicielles doivent être modifiées pour fonctionner ensemble ou avec le code métier, elles le sont avec un système d'expressions rationnelles pour positionner les modifications nécessaires dans le code pris "sur l'étagère". Est-ce que c'est ça? Si oui, en quoi est-ce que l'AOP est fondamentalement autre chose qu'un mécanisme pour patcher les codes-sources? Merci.Greguar (d) 26 mai 2009 à 10:27 (CEST)Répondre

Langage orienté objet par opposition à langage impératif ?

modifier

Dans l'introduction on peut lire "aussi bien avec un langage orienté objet comme Python qu'avec un langage impératif comme le C". La mise en opposition des notions de langage orienté objet et de langage impératif ne me paraît pas correcte. La notion de langage impératif s'oppose plutôt à celle de langage déclaratif ou fonctionnel. Les langages orientés objets sont aussi des langages impératifs, même si certains peuvent être considérés comme multi-paradigmes.

Le langage C est un langage (impératif) procédural, et c'est peut être cette notion qui doit plutôt être opposée à celle de langage orienté objet. J'ignore si il est possible de faire de la programmation orientée aspect avec des langages non impératifs (Haskell, CamL, Prolog ...).


D'accord - modification faite
S.dubourg (d) 13 décembre 2011 à 11:29 (CET)Répondre

Lexique

modifier

J'ai un problème avec le vocabulaire à commencer par "Point de coupure" souvent utilisé dans l'article. Le point de coupure est le résultat ayant été coupé, alors que le "point cut" est l'endroit où couper. Je pense donc que l'utilisation de "Point de coupe" est plus exacte. Car elle permet de lever l'ambiguité du terme "coupure" et se trouve être proche de l'original (ce qui pour une fois ne gâche rien).

Je pense également que le terme "Considérations entrecroisées" pour "cross-cutting concerns" est erroné. Ce dernier terme indique une difficulté/préocupation que l'on retrouve sur l'ensemble de la coupe. Dans ce contexte, je trouve "préoccupations transversales" plus adapté.

Revenir à la page « Programmation orientée aspect ».