Many thanks to Hanzík for the Czech translations!

tcc-case-title
estremamente geeky  estremamente geeky

Caso 195

Il codice del mago

Un monaco del Clan dell'Orma di Elefante si accorse che il suo nuovo metodo di servizio non aggiornava il database, e ció senza sollevare eccezioni. Chiese aiuto al maestro Java Bawan.

Dopo una breve indagine, Bawan dichiaró, “L’oggetto proxy auto-generato dal tuo Servizio non esegue il commit della transazione perché l’annotazione ‘Transactional’ è stata posta su un metodo privato, invece che sull’interfaccia pubblica che lo invoca.”

“Non capisco”, disse il monaco. “Cos’è questo ‘oggetto proxy’ di cui parlate?”

Bawan guardò il monaco con sospetto. “Descrivimi come il framework AOP esegue commits e rollbacks.”

Il monaco si strinse nelle spalle. “Vengono eseguiti automaticamente.”

Bawan dette al monaco una botta in testa. “Se ti chiedessi come fa il mago dell’Imperatore a far sparire i conigli, risponderesti ‘per magia’? Rifletti prima di parlare, o ti mostrerò come faccio a far sparire i monaci.”

Il monaco si massaggiò la testa. “Ma non dovremmo aspettarci da un framework di terze parti che ci liberi dalla necessità di conoscerne i meccanismi interni? Che ne è del Principio della Black Box?”

Bawan si avvicinó all’orecchio sinistro del monaco, fece apparire un cucchiaio di legno dal nulla e lo colpí una seconda volta. “Quando un coniglio si trova all’interno di una scatola nera e svanisce ad un segnale, è prerogativa del pubblico fare semplicemente “ooh” e “aah” dallo stupore. Ma noi, che siamo in scena, dobbiamo sapere come funziona il trucco. La perdita dell’innocenza è il prezzo degli applausi”.