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:


Facebook,
Wikio,
Segnalo.

giovedì 2 luglio 2009 alle 9:13 PM -
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ì
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 9:24 PM -
Racconto delizioso
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 10:00 PM -
@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.
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 10:02 PM -
Ah ecco era troppo bello per essere vero
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 10:57 PM -
Ah, la deframmentazione del fs o la scansione antivirus!
Che un gli si può dare noia sennò vengono male. E dagli di caffè
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 11:09 PM -
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
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 11:20 PM -
Hai tempo di andare in Brasile a selezionare i chicchi, tornare, macinarli e gustare che ancora sei a metà strada
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 11:40 PM -
Quante deframmentazioni anti-noia mi son fatto! Ma con i nuovi SSD rimane solo l'antivirus. Scusa debole in quanto operazione non invasiva.
Permalink - Rispondi al commento
giovedì 2 luglio 2009 alle 11:44 PM -
Vabbè Paperino, puoi sempre usare la scusa che sta compilando il codice...
Permalink - Rispondi al commento
venerdì 3 luglio 2009 alle 12:55 AM -
http://xkcd.com/303/
Permalink - Rispondi al commento
venerdì 3 luglio 2009 alle 9:30 AM -
lol
Permalink - Rispondi al commento
venerdì 3 luglio 2009 alle 11:31 AM -
Umh, e io che ho sempre programmato queste "noie" per essere eseguite durante la pausa pranzo.
Scopro ora di aver commesso un grave errore
Permalink - Rispondi al commento
venerdì 3 luglio 2009 alle 1:01 PM -
Ti avverto che questa me la rivendo, è troppo carina.
Permalink - Rispondi al commento
venerdì 3 luglio 2009 alle 5:40 PM -
@Zakk:
Esatto, è proprio quello che intendevo!
Permalink - Rispondi al commento
sabato 4 luglio 2009 alle 11:45 PM -
Tante cose sono cambiante in dipartimento da quell'anno
Permalink - Rispondi al commento
domenica 5 luglio 2009 alle 5:30 PM -
@Pippolo: mi aspetto qualche storia nuova dal DIB allora!
Permalink - Rispondi al commento
venerdì 10 luglio 2009 alle 10:18 PM -
@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
Permalink - Rispondi al commento
sabato 11 luglio 2009 alle 1:12 AM -
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.
Permalink - Rispondi al commento
lunedì 13 luglio 2009 alle 11:01 PM -
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
Permalink - Rispondi al commento
martedì 14 luglio 2009 alle 9:35 PM -
Immagino fermi a SQL-92...
Permalink - Rispondi al commento
mercoledì 15 luglio 2009 alle 10:05 PM -
Ahah strano ma si fa SQL-99
Permalink - Rispondi al commento