IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Programmation Orientée Aspect - votre avis


Sujet :

Débats sur le développement - Le Best Of

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut Programmation Orientée Aspect - votre avis
    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 :

  2. #2
    Membre Expert Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Par défaut
    Jamais entendu parler de ça. Qu'est-ce donc ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Par défaut
    Pour une introduction http://eclipse.org/aspectj/

  4. #4
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Voici une approche : http://www-igm.univ-mlv.fr/~dr/XPOSE...l/sommaire.htm
    Ca m'a l'aire très interressant en tout cas Apparemment c'est l'évolution de la programmation après l'orienté objet.
    Si quelqu'un à déjà essayé ce serait bien d'avoir son avis.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Par défaut
    Ca a l'air très intéressant mais comme certains autres projets (ça me fait penser à un certain projet de BDOO nommé Ozone) de ce type, j'ai peur que l'idée ne se développe pas suffisamment. En tout cas, le concept mérite qu'on y prête attention. C'est peut-être notre attention qui le fera se développer.

  6. #6
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Je pense pour ma part que ça va êter adopté comme la programmation par contrat l'a été. Il suffit d'attendre que un petit peu que ça se développe. Appemment ça marche bien, c'est robuste et cohérent ce qui n'est pas toujours le cas pour les BDDOO il me semble.
    Je serais curieux de savoir s'il y en a qui voient ce principe en cours ?

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par narmataru
    Je pense pour ma part que ça va êter adopté comme la programmation par contrat l'a été. Il suffit d'attendre que un petit peu que ça se développe. Appemment ça marche bien, c'est robuste et cohérent ce qui n'est pas toujours le cas pour les BDDOO il me semble.
    Je serais curieux de savoir s'il y en a qui voient ce principe en cours ?
    Programmation par contrats, oui on voit ça en cours (1ère année ENSEEIHT informatique & maths appli).

    POA, on n'a pas encore vu, trop récent sans doute...

  8. #8
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Effectivement, cela a l'air intéressant, par exemple sur ce bout de code, trouvé en bas de cette page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    public aspect LogCreditCardProcessorOperations
    { Logger logger = new StdoutLogger();
    
        pointcut publicOperation():
        execution(public * CreditCardProcessor.*(..));
    
         
    
        pointcut publicOperationCardAmountArgs(CreditCard card, Money amount):
        publicOperation() && args(card, amount);
        before(CreditCard card, Money amount):
        publicOperationCardAmountArgs(card, amount)
        { logOperation("Starting", thisjoin point.getSignature().toString(), card, amount);
        }
    
         
    
        after(CreditCard card, Money amount) returning:
        publicOperationCardAmountArgs(card, amount)
        { logOperation("Completing", thisjoin point.getSignature().toString(), card, amount);
        }
        after (CreditCard card, Money amount) throwing (Exception e):
        publicOperationCardAmountArgs(card, amount)
        { logOperation("Exception " + e, thisjoin point.getSignature().toString(), card, amount);
        }
    
         
        private void logOperation(String status, String operation, CreditCard card, Money amount)
        { logger.log(status + " " + operation + " Card: " + card + " Amount: " + amount);
        }
    
    }
    Les before() et after() sont difficiles (=pas triviaux) à implanter en java pur...

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut LA POA ou en sommes nous
    Voilà deux ans je me demandais si j'utiliserai la POA

    A prèsent on en voit partout et effectivement c'est super pratique.

    Bonne lecture à tous.

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    J'ai vaguement lu un peu certaines infos là dessus mais est-ce qu'il s'agit d'une nouvelle technique de programmation, ou d'une nouvelle sur-couche de fonctionnalités des futurs langages ? En tous cas moi ca me dis pas grand chose .... cela peut etre bien à 1° vue pour de gros groupes de programmeur (entreprises etc....) mais à mon avis pas trop utile pour un simple mec qui programme chez lui en C lol
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  11. #11
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Effectivement il semble que pour l'instant la programmation orienté aspect est une surcouche, en tout cas pour les java, mais il devrait y avoir l'émergeance de langages totalement orienté dans cette optique.

    En tut cas voici un exemple claire : http://www.developer.com/design/article.php/3308941

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par narmataru
    Voici une approche : http://www-igm.univ-mlv.fr/~dr/XPOSE2002/JAC/html/sommaire.htm
    Ca m'a l'aire très interressant en tout cas Apparemment c'est l'évolution de la programmation après l'orienté objet.
    Je ne sais pas si on peut parler d'évolution...je dirai plutôt un complément.

    J'ai lu le lien que tu donnes, et certaines choses m'ont fait sourire :

    La Programmation Orientée Objet effectue un découpage du projet selon les Objets (implémentation de Classes).
    => Caractéristiques: emmêlement et éparpillement du code.
    => Conséquences: à long terme mauvaise traçabilité, faible productivité, faible réutilisation et pauvre qualité du code, évolution complexe.
    C'est exactement ce qu'on disait de la programmation procédurale pour promouvoir la POO.

    A mon sens, POA et POO se rejoignent, s'entrecoupent et s'utilisent l'un l'autre.

    N'importe quel programmeur ayant bossé sur de gros projets en POO a été confronté aux questions de "responsabilités" des différents objets...on regroupe souvent les objets ayant des responsabilités concernant le même scope (la sécurité par exemple) au sein d'un composant, ce qui à mon sens est de la POA.

    En bref, rien de révolutionnaire...Juste un nom sur une approche de réflexion utilisée en POO depuis longtemps.

  13. #13
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    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

  14. #14
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    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…

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    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...

  16. #16
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    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 ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  17. #17
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    L'AOP est un niveau d'abstraction un petit peu au dessus de l'OO; ca ne remplace pas, c'est simplement complémentaire.

    Les objets sont un regroupement d'entités procédurales=responsabilité et de données=état. Cependant, à ces objets il est parfois nécessaire d'ajoutér d'autres responsabilités qui ne sont pas de leur nature, tel que la sécurité, le débugging=trace etc... Pour faire cela on doit parasiter le code natif avec du code de ces "aspects" ==> code moche.

    L'AOP permet d'éviter ce parasitisme en ayant un regard sur l'exécution du compilateur. Par exemple lors d'un appel à une méthode définie le système AOP pourra exécuter un programme (avant, pendant ou après la méthode) par exemple pour un appel à logging. Ceci ce fait sans adjonction de code dans les classes de notre applie.

    Actuellement j'étudie cette technique pour voir si je peux faire une sorte de WinRunner automatique sur mes IHM, et pour retracer les dernières exécutions de l'utilisateur avant un bug (sorte de film).

    PS: c'est quoi la prog par contrat (j'ai du retard là).

  18. #18
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut
    Citation Envoyé par Alec6
    L'AOP permet d'éviter ce parasitisme en ayant un regard sur l'exécution du compilateur. Par exemple lors d'un appel à une méthode définie le système AOP pourra exécuter un programme (avant, pendant ou après la méthode) par exemple pour un appel à logging. Ceci ce fait sans adjonction de code dans les classes de notre applie.
    Si c'est ça, alors ce n'est rien de neuf... c'est exactement comme les facettes et daemons (daemon-before et daemon-after) de certains anciens langage objet (qui n'ont jamais émergé ailleurs que dans les laboratoire d'ailleur). L'idée est bonne, mais elle a manqué d'attention, ... et elle a quand même au moins 30 lustre d'âge... loin d'être une nouveauté. C'est comme AJAX : c'est un nouveau nom pour faire un nouveau concept marketing d'un truc vieux comme le monde.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut
    Il faudra compter avec les méthodes d'extension en C# 3, également.

  20. #20
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut
    Citation Envoyé par atome
    Il faudra compter avec les méthodes d'extension en C# 3, également.
    C'est-à-dire ?

    (cette discussion dans l'ensemble, m'en inspire une autre... le temps que je rédige ça, et je ferai une autre topic)

Discussions similaires

  1. [AOP] programmation orientée Aspect en PHP
    Par anaon dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/06/2012, 14h08
  2. Programmation Orientée Aspect - votre avis
    Par Alec6 dans le forum Autres
    Réponses: 70
    Dernier message: 09/07/2009, 11h19
  3. [POO] Programmation Orientée Aspect
    Par Ethylene dans le forum Langage
    Réponses: 13
    Dernier message: 23/03/2006, 10h56
  4. [AspectJ] programmation orientée aspect
    Par soeursourire dans le forum Autres
    Réponses: 6
    Dernier message: 11/02/2006, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo