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

  1. #1
    Membre averti
    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 expérimenté
    Jamais entendu parler de ça. Qu'est-ce donc ?

  3. #3
    Membre actif
    Pour une introduction http://eclipse.org/aspectj/

  4. #4
    Membre expérimenté
    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
    Nouveau membre du Club
    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 expérimenté
    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
    Rédacteur

    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 !

  8. #8
    Membre expérimenté
    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

  9. #9
    Inscrit
    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.
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  10. #10
    Membre averti
    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à).

  11. #11
    Membre expérimenté
    Bien sure que l'on regroupe déjà les objets par responsabilité. Les packages sont là pour ça. De la à dire qu'on peut faire de la POA simplement en faisant celà... Ca reviendrais un peu à dire que l'on peut faire de la POO avec un langage procédurale. Un peu à la manière des objets de la librairie GTK qui sont pourtant en C. Ca ressemble mais bon c'est un peu limité. On peut penser qu'une struture associé à une liste de fonctions suffit à faire un objet mais bon ce n'est très pratique pour gérer l'héritage, le polymorphisme etc...
    Pour ma part, je ne pense pas que l'on puisse faire de la POA vraiment aboutie rien qu'avec un langage objet de la même manière que l'on ne peut pas faire de la POO avec un langage procédurale. On peut s'y rapporcher mais ça reste assez basique.
    La POA sera vraiment intéressant lorsqu'il y aura un langage créé dès le début avec cette optique.

    En bref, rien de révolutionnaire...Juste un nom sur une approche de réflexion utilisée en POO depuis longtemps.
    Oui bien sure. Mais si cette réfléxion est poussé à l'extrème et intégré au sein même d'un langage ça ne peut être qu'une évolution bénéfique (qui engendreront surement d'autres réflexions et ainsi de suite. Ca doit être comme ça qu'on avance non ?)

  12. #12
    Membre averti
    Il existe déjà un langage qui étend JAVA pour fournir des mot clés dédiés à la POA et ils risquent de tirer la bourre avec les framework purement JAVA dédiés à la POA

  13. #13
    Nouveau membre du Club
    POA se vante plus qu'elle vaut c ni révoluton ni innovation mais simple méthode technique ou moins encore "astuces"
    pourtant ca s'avère trèes interessant quand on aborde de grands et de complexes projets
    "Le besoin est père de l'invention !" ELYAMANI Azaal

  14. #14
    Membre éprouvé
    Après une visite du site, j'ai impression que l'on veux implanté dans ce modèle des idées qui ont été dévellopées avec le tcl (les agents)...
    intel i7
    Mint 20
    Plasma et Cinnamon

  15. #15
    Expert confirmé
    La programmation par aspect n'est qu'un "Add-on" des langages traditionnels, objets ou non. Elle permet d'apporter une solution élégante au pattern SoC (Separation Of Concern[1]). Les bénéfices au niveau de la maintenance de votre système sont évidents.

    L'aspect est tissé (par un weaver[2]) pour produire du code traditionnel. En d'autres termes, une fois la compilation effectuée, la notion d'aspect n'existe plus.

    _______________
    [1] Séparation des préoccupations
    [2] Tisseur
    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

  16. #16
    Membre expérimenté
    Hello,

    JDK1.5 n'integrerait elle pas l'AOP avec les annotations?
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  17. #17
    Candidat au Club
    De la POA graphique...
    J'ai testé un outil sympa pour faire de la POA à base de modèle graphique, jTagStudio ( http://www.electronic-experience.com ).

  18. #18
    Membre habitué
    Bonjour,
    Effectivement la programmation orienté aspect n'a rien de révolutionnaire. Pourtant le coté intéressant à mon sens et de rester concentrer sur les problématiques métiers que l'on a à implémenter. A bas les try/catch, les logs, les gestions de sécurité qui pourrissent le code dans toutes les classes donc qui multiplient les lignes de code sans rajouter un niveau fonctionnel supplémentaire.

    Je crois que comme dans l'ensemble des technos, l'aspect participe à rendre moins technique le code et plus métier. Les problématiques techniques et transverses étant implémentés en aspect.

    Seul bémol aujourd'hui l'aspect ne fait pas encore partie d'un langage à part entière. En java il faut choisir entre la solution JBoss, AspectJ et bien d'autres qui ont chacun leurs avantages et leurs défauts.

  19. #19
    Membre expérimenté
    La question à se poser, à mon sens, est d'abord de savoir si cette simplification du code grâce à la POA (que je trouve toute relative), est suffisante pour masquer la difficulté, le temps à passer en plus (tissage à faire, et j'en passe...) et l'apprentissage de la POA.

    J'en doute fortement.

  20. #20
    Expert confirmé
    Ce que tu dis est vrai pour toutes technique de génie logicielle en général. C'est toujours plus facile de développer comme un bourrin que de bien développer en suivant les préceptes du GL. La différence se ressent sur le long terme et à de grandes échelles, comme toujours dans ce domaine.
    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

###raw>template_hook.ano_emploi###