Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.


by examples


A well-written program is a program where the cost of implementing a feature is constant throughout the program's lifetime

Itay Maman

Aspect: appearance, visible form, the action of looking at appearance to the eye or mind

Advice: an opinion or a suggestion about what somebody should do in a particular situation

Weaver: a person whose job is weaving cloth

Composition: the combining of distinct parts or elements to form a whole

Intercept: to stop, deflect, or interrupt the progress or intended course o

Scattering: the dispersal of a beam of particles or of radiation into a range of directions as a result of physical interactions; placed irregularly and far apart

Tangling: To mix together or intertwine in a confused mass

When to apply?

Cross-Cutting concerns

Demo #0: prototype → tangled → aspects


Is it possible at all? Déjà vu

Poor man's AOP

  • Single responsibility
  • Open/closed
  • Liskov substitution
  • Interface segregation
  • Dependency inversion
  • Don't Repeat Yourself

AOP components

Gael Fraiteur

AOP Examples

Demo #4

Other examples

Post-compile vs. Runtime

PostSharp vs. Castle Dynamic Proxy

AOP and testing

AOP as anti-patter and alternatives


Use a spacebar or arrow keys to navigate