Page 1

Aspect Oriented Programming. Notițe și câteva idei. Knall Andreas

1

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013


Ce este Aspect Oriented Programming?

AOP este o paradigmă nouă complementară celor existente.

Separă cross cutting concerns de restul codului.

Urmăreşte modularizarea unor aspecte întregi ale unui proiect.

AOP

Elimină codul duplicat. Funcţioanlităţile AOP şi incidenţa acestora poate fi modificată într-o manieră facilă, având efect direct în locurile folosite. Implementări în diferite limbaje (Spring AOP, AspectJ, Microsoft Enterprise Library, Javascript etc..) 2

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013


Cross cutting concerns.

Client Layer

Service Layer

 Funcţionalitate secundară, folosită în multe locuri ale aplicaţiei.

Security

Logging

Data Acces Layer

 Bucăţi de cod care pot fi dificil modularizate cu OOP.  Cel mai proeminent exemplu: Logging-ul.

 Fară AOP sau o arhitectură bună, codul tinde să fie împrăştiat prin toată aplicaţia.

3

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013


Câteva exemple.

AOP se poate folosi în următoarele situaţii:

4

Tracing

Erori

• Logging • Trimiterea automată de e-mailuri

Detectarea și corectarea erorilor • Detectarea erorilor • Corectarea erorilor

Securitate

Altele

• Validarea datelor • Autorizare

• Managementul tranzacţiilor • Internaţionalizare

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013


Noţiuni. Advice  

Implementarea unui cross-cutting concern Poate fi modularizat în clase şi metode

Join Points  

Puncte în execuţia codului De regulă Join Point-urile se declară la nivel de metodă

Pointcut  

5

Modalitate de a cuantifica join point-urile De exemplu printr-un regular expression

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013


Reversul medaliei

Unit tests.

Eventuale probleme de performanţă în momentul în care sunt definite multe aspecte, care posibil comunică între ele.

Probleme AOP Pobleme la înţelegerea codului.

Probleme la debugging.

6

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013


Mulţumesc pentru atenţia acordată!

Andreas Knall GB Automotive / Function Phone: +49 89 96101-xxxx Andreas.Knall@msg-systems.com www.msg-systems.ro

www.msg-systems.com

7

AOP. Notiţe şi câteva idei

© msg systems Romania, 04/04/2013

Aspect oriented programming