Go Deep into the Rabbit Hole and Enter a Wonderland of Possibilities with Aspect Oriented Programming

Aspect Oriented Programming (or AOP) is a programming paradigm that allows objects to be built containing just the business logic of an application, with cross-cutting concerns such as logging, caching or transaction management maintained independently. Sometimes referred to as the Interceptor Pattern, these cross-cutting aspects are applied to the application code automagically only at run time.

It sounds like a wonderful concept, but there are drawbacks and dangers as well. For those willing to accept those risks in their code, AOP can open up a whole new wonderland of possibilities, but for many it’s a form of magic.

There are developers that dislike any form of “magic” in their code, for whom even PHP’s built-in magic methods like __get and __set() are anathema, and for whom closure binding is a forbidden alchemy: the dark voodoo of AOP is certainly not something for them. But for those who are prepared to embrace its sorcery, AOP is the route to a wonderland of new possibilities.

So shall we enter the rabbit hole and see what lies within?


Comments are closed.

I had no clue about aspect oriented design, now I have. Nice explanation of what AOP is, and why it can be useful. I learned a lot, and it was a good speaker as well.

A very interesting talk. Mark explains the concepts in a very clear way, and I'm not interested in trying out AOP soon. I know where to start! What more can one ask from attending a talk at a conference?

Mike Lehan at 12:23 on 21 Feb 2019

Good to see something a bit alternative like AoP being dealt with at conference level and it was well presented by Mark. Challenging developers to evaluate why they do or don't like "magic" is a good exercise.

It was a shame that it ended with "but you can't use this in production" and didn't really offer reasons for why or whether it could ever be used - ie what needs doing so that we can use it, and can we help?