Quels sont les avantages et les inconvénients de l'utilisation d'un paradigme de programmation orienté aspect [fermé]


10

Ok alors voici la question: Quels sont les avantages et les inconvénients de l'utilisation d'un paradigme de programmation orienté aspect.

Mes avantages et inconvénients jusqu'à présent:

Avantages:

  • Complète l'orientation de l'objet.
  • Modularise les préoccupations transversales améliorant la maintenabilité et la compréhensibilité du code.

Désavantage:

  • Pas le plus simple des concepts à saisir - pas aussi bien documenté que OO
  • OO va assez loin dans la séparation des préoccupations ...

Quelqu'un voudrait-il contester l'un de ces éléments / ajouter le sien?

Merci beaucoup, J


1
Beaucoup de matériel d'apprentissage existe déjà. Introduction à AOP - dotnetslackers.com/articles/net/… . En savoir PostSharp (framework AOP) - programmersunlimited.wordpress.com/postsharp-principals
DustinDavis

Réponses:


3

Du point de vue d'un programmeur dont la devise est "Keep It Simple Stupid", évaluer l'utilisation de ces modèles est dangereux. Pour ce qu'il tente d'accomplir, il rend un programme beaucoup plus difficile à comprendre et, par conséquent, plus facile à casser.

Ironiquement, le génie d'une bonne programmation réside dans sa simplicité. Les programmes complexes peuvent fonctionner, mais sont des cauchemars en matière de maintenance, et lorsque vous considérez que les 2/3 du temps passé par un programmeur sont consacrés à la correction des erreurs dans les programmes, cela ne paie pas au final.


2

La distribution de fonctionnalités hors du lieu de fonctionnement augmente la complexité et les problèmes d'action à distance.

Je considère que de telles approches de conception doivent évoluer car le système l'exige pour un fonctionnement propre, non conçu au départ.


2

Avantages supplémentaires (pas tous)

  • Réutilisation des classes et des aspects, grâce à la modularité
  • Coût de codage réduit grâce à la modularité et à la réutilisation
  • Code plus court grâce à la possibilité d'avoir un aspect avec le code qui serait autrement implémenté (dispersé) dans plusieurs classes
  • Capacité d'ajouter du comportement à une classe sans y introduire du code sans rapport avec sa responsabilité principale
  • Capacité à redéfinir la sémantique des méthodes / classes sans en informer les classes clientes

Désavantages

  • Surcharge d'exécution lors de l'utilisation de certaines constructions, par exemple cflow

0

Inconvénient: Mauvaise prise en charge de la chaîne d'outils: - le débogueur et le profileur peuvent ne pas connaître la "programmation orientée aspect" pour cette raison, ils peuvent travailler sur le code comme si tous les aspects avaient été remplacés par du code procédural.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.