Anti-pattern: pausa caffè

Durante i miei trascorsi universitari ho potuto notare che le “materie” che mi hanno arricchito di più sono sempre state quelle più orientate alla teoria che alla pratica. La cosa si è rivelata lampante durante la preparazione dell’esame di “Sistemi II” che richiedeva la presentazione di un caso di studio dall’analisi al codice finale. L’esame ha avuto risvolti tragicomici così eclatanti che sebbene abbia difficoltà a ricordare la data della seduta di laurea, non ho alcuna difficoltà a ricordare quel maledetto 28 Maggio 1993. Da allora ho sempre guardato con occhio estremamente critico a tutto quanto recepito durante quel corso e mi son ritrovato più che spesso a fare cose e riflettere: “quanto aveva torto quel professorone”. Insomma, la mia è diventata una vera e propria malattia, per fortuna ne sono conscio e penso di essere in via di superamento del trauma. Un episodio però mi ha colpito in maniera positiva ed è ritornato alla mente ieri. Assistevo all’esposizione di un collega (quanto ci piaceva appellarci così) e al fatto che volesse difendere l’implementazione estremamente criptica quanto esageratamente performante di un pezzo di codice. Implementazione anche molto curata rispetto a quasi tutto il resto del lavoro. Al che il professorone esordisce: “immagino che questo pezzo di codice per essere così intenso debba essere fondamentale…”. Il malcapitato però ammette che si trattava di un pezzo di codice non critico al funzionamento dell’applicazione sul modello di “codice di rigenerazione degli indici” che fa tanto figo a pronunciare ma poco utile alla prova dell’atto pratico, tant’è che “il cliente è supposto di rigenerare gli indici al massimo una volta al giorno per garantire prestazioni adeguate all’uso normale dell’applicazione”. Fu lì, durante la seduta d’esame, che il professorone espose l’anti-pattern della pausa caffè (nome ‘inventato’ da me in quanto la Gang of Four ha pubblicato il mitico lavoro solo nel 1995). Il professorone sosteneva che pezzi di codice lento e scarsamente ottimizzato, se accoppiati con funzionalità di uso molto raro in applicazioni di carattere produttivo (leggasi: destinate agli uffici), sono fondamentali per la soddisfazione dei clienti che – nei momenti più noiosi della giornata – possono giocare la carta “lancio la rigenerazione degli indici e vado a fare un caffè”. Il professorone faceva altresì notare che il fatto che tale funzionalità sia non-fondamentale all’uso della applicazione è conditio sine qua non per l’introduzione dell’anti-pattern. Se un pezzo di codice di uso molto frequente richiedesse lunghe pause caffè si avrebbe l’effetto collaterale di produrre clienti impazienti, insoddisfatti o magari epilettici. Osservazioni come queste meritano un solo tipo di aggettivo: geniali.

A questa storia sono così affezionato che la riciclo spesso quando vedo qualche collega combattere con l’ottimizzazione esagerata di pezzi di codice di scarsa utilità. Cosa buffa ieri, mentre ero in preda ad un piccolo attacco di insonnia che mi ostinavo a combattere con un po’ di refactoring domino (*), mi sono accorto che stavo facendomi pippe mentali davanti ad un pezzo di codice perfetto o quasi per l’anti-pattern pausa caffè generalizzato. È stato un lampo e pienamente soddisfatto della scelta “strategica” sono tornato a nanna. Certe volte funziona così.

-quack

(*) materiale per un’altra storia.

Potrebbero interessarti anche:
Commenti (21):
1. 0verture
giovedì 2 luglio 2009 alle 9:13 PM - firefox 3.5 Windows XP
   

Avrebbero dovuto chiamare quel corso "Filosofia Informatica" o più banalmente "forma mentis dell'utile" per come mette al centro dei pensieri del programmatore, come si troverà l'utente finale. In futuro spero anch'io di farli corsi così

   
2. Pinco
giovedì 2 luglio 2009 alle 9:24 PM - firefox 3.5 Windows Vista
   

Racconto delizioso

   
3. Paperino
giovedì 2 luglio 2009 alle 10:00 PM - firefox 3.5 Windows 7
   

@0verture: in realtà la riflessione del professorone, avvenuta durante un'esame, è da considerarsi "fuori corso" e quindi sua nota personale. Dal corso vero e proprio mi è venuto in tasca solo stress (analisi e progettazione funzionale quando il resto del mondo faceva passi avanti con l'OO).

@Pinco: grazie.

   
4. 0verture
giovedì 2 luglio 2009 alle 10:02 PM - firefox 3.5 Windows XP
   

Ah ecco era troppo bello per essere vero

   
5. Gabriele
giovedì 2 luglio 2009 alle 10:57 PM - firefox 3.5 Ubuntu 9.04
   

Ah, la deframmentazione del fs o la scansione antivirus!

Che un gli si può dare noia sennò vengono male. E dagli di caffè

   
6. floo
giovedì 2 luglio 2009 alle 11:09 PM - firefox 3.5 Windows 7
   

Ah, la compilazione del kernel! Lì sì che ci vuole la pausa caffé

Vabbé, scherzo, era per rispondere ad una battuta con una contro-battuta.

(Che poi da un sacco di tempo la deframmentazione ce l'ho automatizzata e non ho mai avuto bisogno di una pausa caffé per quello, solo una volta all'anno per la scansione antivirus)

Cmq, beh, a volte può essere utile un pezzo di codice lento. Con la società frenetica di oggi, ti permette di staccare per qualche minuto

   
7. 0verture
giovedì 2 luglio 2009 alle 11:20 PM - firefox 3.5 Windows XP
   

Lì sì che ci vuole la pausa caffé

Hai tempo di andare in Brasile a selezionare i chicchi, tornare, macinarli e gustare che ancora sei a metà strada

   
8. Paperino
giovedì 2 luglio 2009 alle 11:40 PM - firefox 3.5 Windows 7
   

Quante deframmentazioni anti-noia mi son fatto! Ma con i nuovi SSD rimane solo l'antivirus. Scusa debole in quanto operazione non invasiva.

   
9. Daniele B.
giovedì 2 luglio 2009 alle 11:44 PM - firefox 3.5 Windows 7
   

Vabbè Paperino, puoi sempre usare la scusa che sta compilando il codice...

   
10. zakk
venerdì 3 luglio 2009 alle 12:55 AM - safari 530.18 OS X 10.5.7
   
   
11. Snake
venerdì 3 luglio 2009 alle 9:30 AM - firefox 3.5 Windows Vista
   

http://xkcd.com/303/

 

'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'

 

lol

   
12. Scrooge McDuck
venerdì 3 luglio 2009 alle 11:31 AM - firefox 3.5 Windows Vista
   

Umh, e io che ho sempre programmato queste "noie" per essere eseguite durante la pausa pranzo.
Scopro ora di aver commesso un grave errore

   
13. andrea
venerdì 3 luglio 2009 alle 1:01 PM - safari 530.18 OS X 10.5.7
   

Ti avverto che questa me la rivendo, è troppo carina.

   
14. Daniele B.
venerdì 3 luglio 2009 alle 5:40 PM - firefox 3.5 Windows 7
   

@Zakk:

Esatto, è proprio quello che intendevo!

   
15. Pippolo
sabato 4 luglio 2009 alle 11:45 PM - chrome 2.0.172.33 Windows XP
   

Tante cose sono cambiante in dipartimento da quell'anno

   
16. Paperino
domenica 5 luglio 2009 alle 5:30 PM - firefox 3.5 Windows 7
   

@Pippolo: mi aspetto qualche storia nuova dal DIB allora!

   
17. Pippolo
venerdì 10 luglio 2009 alle 10:18 PM - chrome 2.0.172.33 Windows XP
   

@Paperino: ahhhh, ne avrei di aneddoti da raccontare... Ormai da quando c'è stata la riforma l'informatica si studia da autodidatta. Sapessi che gente ci sta li, altro che informatici

   
18. Paperino
sabato 11 luglio 2009 alle 1:12 AM - firefox 3.0.10 Windows Vista
   

Ti riferisci agli studenti o ai professori? Perché a parte rarissime eccezioni i professori son tutti da buttar via (non conosco i giovani, qualcuno è pure figlio d'arte che nell'Ateneo barese vuol dire tanto). Per dirne una nel 1994 il professore di Basi di Dati ci faceva studiare l'avanzatissimo AQL, database gerarchici e reticolari e si permetteva di fumare durante l'orale, in totale assenza di testimoni e scog*ionato come se stessi lì a sprecare preziosissimo tempo. Per fortuna la carriera mi ha dato certe soddisfazioni da legge da contrappasso.

   
19. Pippolo
lunedì 13 luglio 2009 alle 11:01 PM - chrome 2.0.172.33 Windows XP
   

AQche ? No adesso si studia l'SQL

Si mi riferisco ai "docenti" in primis Ovviamente ci sono ancora quelli seri. Poi vabbè di studenti che non capiscono una cippa ce ne sono a bizzeffe. Specialmente per quanto riguarda l'applicazione dei pattern, spiegati in mezz'ora di lezione, non ne parliamo.Menomale che tra qualche mese me ne vado, anzi magari mettici una buona parola li da voi

   
20. Paperino
martedì 14 luglio 2009 alle 9:35 PM - firefox 3.5 Windows 7
   

Immagino fermi a SQL-92...

   
21. Pippolo
mercoledì 15 luglio 2009 alle 10:05 PM - chrome 2.0.172.33 Windows XP
   

Ahah strano ma si fa SQL-99

   
Lascia un commento:
Commento: (clicca su questo link per gli smiley supportati; regole di ingaggio per i commenti)
(opzionale, per il Gravatar)