Oula, non, rien a voir avec le monkey patching.
Le monkey patching c'est grosso modo remplacer une classe/methode de librairie bas niveau par la sienne generalement pour corriger un bug alakon.
C'est une pratique de grouik de tout dernier recours.
Genre tu veux corriger un bug dans le runtime de flex qui est connu et qu'adobe refuse de corriger.
Ca marche pas partout, bon courage pour monkey patcher la class String de java par exemple.
L'aop, c'est grosso modo "avant chaque appel de methode qui s'appelle foo, tu feras tourner ce bout de code la".
En gros tu veux faire tourner du code avant ou apres, avec des conditions hautement dynamiques, basee sur le nom du methode, la classe de l'objet appelant, la valeur d'un des parametres ou l'age du capitaine.
Mais en aucun cas tu ne modifies le comportement de la methode appellee, contrairement au monkey patching dont c'est la raison d'etre.
En gros, c'est tres pratique pour la transactionalite, eventuellement pour du logging (encore que c'est franchement tire par les cheveux) et c'est a peu pres tout.
Faire quoi que ce soit d'autre avec te retomberas tres probablement sur la gueule un jour.
C'est un enfer a debugger, personne de sain ne l'envisagerais serieusement en tant que paradigme de programmation a part entiere. Et meme pour les transactions, un bon vieux proxy des familles fait bien mieux l'affaire.
Si vous me croyez pas, configurez une transactionalite dans spring avec proxy + @transactional, et tentez de faire pareil avec spring aop.
C'est moins souple, certes mais au moins ca te pete pas a la gueule sans raison et surtout, on voit ce qu'il se passe.
Rajoutez par dessus que certains framework aop requierent d'aller faire le con avec le bytecode ou de compiler specialement les classes aopiser, si rien que ca vous convainc pas que c'est une mauvaise idee...
If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.
[^] # Re: Intéressant
Posté par pasScott pasForstall . En réponse au journal Des paradigmes alternatifs. Évalué à 3.
Oula, non, rien a voir avec le monkey patching.
Le monkey patching c'est grosso modo remplacer une classe/methode de librairie bas niveau par la sienne generalement pour corriger un bug alakon.
C'est une pratique de grouik de tout dernier recours.
Genre tu veux corriger un bug dans le runtime de flex qui est connu et qu'adobe refuse de corriger.
Ca marche pas partout, bon courage pour monkey patcher la class String de java par exemple.
L'aop, c'est grosso modo "avant chaque appel de methode qui s'appelle foo, tu feras tourner ce bout de code la".
En gros tu veux faire tourner du code avant ou apres, avec des conditions hautement dynamiques, basee sur le nom du methode, la classe de l'objet appelant, la valeur d'un des parametres ou l'age du capitaine.
Mais en aucun cas tu ne modifies le comportement de la methode appellee, contrairement au monkey patching dont c'est la raison d'etre.
En gros, c'est tres pratique pour la transactionalite, eventuellement pour du logging (encore que c'est franchement tire par les cheveux) et c'est a peu pres tout.
Faire quoi que ce soit d'autre avec te retomberas tres probablement sur la gueule un jour.
C'est un enfer a debugger, personne de sain ne l'envisagerais serieusement en tant que paradigme de programmation a part entiere. Et meme pour les transactions, un bon vieux proxy des familles fait bien mieux l'affaire.
Si vous me croyez pas, configurez une transactionalite dans spring avec proxy + @transactional, et tentez de faire pareil avec spring aop.
C'est moins souple, certes mais au moins ca te pete pas a la gueule sans raison et surtout, on voit ce qu'il se passe.
Rajoutez par dessus que certains framework aop requierent d'aller faire le con avec le bytecode ou de compiler specialement les classes aopiser, si rien que ca vous convainc pas que c'est une mauvaise idee...
If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.