Talk in English - US at PHPBenelux Conference 2019
Track Name:
Beethoven (A)
View Slides: https://www.slideshare.net/MarkBakerUK/aspects-of-love-slideshare
Short URL: https://joind.in/talk/fc9e2
(QR-Code (opens in new window))
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
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?
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?