Ok, hier ist die Frage: Was sind die Vor- und Nachteile der Verwendung eines aspektorientierten Programmierparadigmas?
Meine bisherigen Vor- und Nachteile:
Vorteile:
- Ergänzt die Objektorientierung.
- Modularisiert Querschnittsthemen und verbessert die Wartbarkeit und Verständlichkeit von Code.
Nachteil:
- Nicht das am einfachsten zu erfassende Konzept - nicht so gut dokumentiert wie OO
- OO geht weit genug bei der Trennung von Bedenken ...
Möchte jemand eines davon herausfordern / sein eigenes hinzufügen?
Vielen Dank, J.
learning
self-improvement
JHarley1
quelle
quelle
Antworten:
Aus der Sicht eines Programmierers, dessen Motto "Keep It Simple Stupid" lautet, ist die Bewertung der Verwendung solcher Modelle gefährlich. Für das, was es zu erreichen versucht, macht es ein Programm weitaus schwieriger zu verstehen und folglich leichter zu brechen.
Das Genie guter Programmierung liegt ironischerweise in seiner Einfachheit. Komplexe Programme funktionieren möglicherweise, sind jedoch Albträume bei der Wartung. Wenn Sie bedenken, dass 2/3 der von einem Programmierer aufgewendeten Zeit für die Behebung von Fehlern in Programmen aufgewendet wird, zahlt sich dies am Ende nicht aus.
quelle
Das Verteilen von Funktionen außerhalb des Einsatzorts erhöht die Komplexität und Probleme bei Fernaktionen.
Ich halte solche Entwurfsansätze für etwas, zu dem man sich weiterentwickeln sollte, da das System dies für einen sauberen Betrieb verlangt und nicht zu Beginn entwickelt wurde.
quelle
Zusätzliche Vorteile (nicht alle)
Nachteile
quelle
Nachteil: Schlechte Unterstützung der Toolkette: - Debugger und Profiler kennen die "aspektorientierte Programmierung" möglicherweise nicht, da sie möglicherweise mit Code arbeiten, als ob alle Aspekte durch prozeduralen Code ersetzt worden wären.
quelle