AOP per il Bug Fixing

Spesso l’utilizzo dell’Aspect Oriented Programming (AOP) viene associato alla parte di Logging, e rarissimamente alla parte di Business di un’applicazione; ovviamente il suo campo d'azione è ben più grande e, giusto la scorsa settimana, mi è capitato di utilizzare l’AOP per effettuare del Bug Fixing su un servizio WCF fornitomi da un’azienda esterna.

In una sessione insieme a Stefano mostrai l’approccio utilizzato in MTV.it per la parte di Logging e di Rewarding nei servizi WCF; affrontammo così come utilizzare AOP anche per la parte di business dell’applicazione e, sempre nella stessa sessione, mostrammo come realizzare un Custom Behaviour per WCF che permettesse di utilizzare l’AOP senza la necessità di ricompilare il servizio.

Come accennato sopra, proprio la scorsa settimana ho avuto dei problemi con un servizio WCF realizzato da una ditta fornitrice esterna che, nell’invocazione di un determinato metodo, non invalidava la cache, causando così un’incongruenza di dati tra tutte quelle applicazioni che accedevano allo stesso repository di Cache.

Purtroppo, non avendo il codice sorgente né la possibilità di effettuare un deploy in tutti i server, l’unica soluzione indolore che mi è venuta in mente è stata quella di realizzare un’interceptor per SpringFramework ed invalidare la cache tramite AOP.

Con 10 righe di codice per l’interceptor e altre 10 nel file di configurazione del servizio, il bug è stato risolto.
Tutto questo a dimostrazione del fatto che l’utilizzo dell’AOP può andare ben oltre il semplice Logging applicativo, e che spesso può far risparmiare parecchio tempo in fase di sviluppo e bug fixing.

Ciauz


Comments