Sto ancora ragionando sugli eventi, sulle parole e sulle cose che sono successe al workshop dell'ugidotnet di giovedì scorso. L'occasione stavolta viene dai discorsi che negli ultimi minuti di presenza, al termine delle sessioni ho avuto la fortuna di poter ascoltare e ai quali ho con piacere partecipato.

Un Raffaele che in punta di fioretto menava stoccate come solo lui sa fare, ha detto una cosa, che se volete non ha nulla a che vedere con la programmazione, e con l'informatica in senso più ampio. Citava il caso nel quale scambiando le posizioni dei pulsanti di un utente medio, il giorno successivo questo sbagliava ogni operazione che li prendesse in causa. Un caso questo che mi riguarda da vicino ultimamente, dato che mi trovo in una situazione analoga, ma quello che conta è che questa affermazione mi è rimasta in testa da quando l'ho sentita e solo ora comincio ad assaporarne il recondito significato.

Tutto questo ha un nome: Pattern.

In ultima analisi, quello che fa un data enter, che usa mille e mille volte una applicazione non è altro che costruirsi un pattern che poi si limita a ripetere alla stregua di una macchinetta, ottenendo sempre una soluzione migliore della volta precedente. Occorre pensarci bene. Sfido chiunque a non aver mai apprezzato un pattern di questo tipo, magari pigiando la medesima sequenza di tasti sulla tastiera e apprezzandone l'efficacia e l'armonia nella digitazione ogni volta che la si ripete.

Ecco quindi spiegato in due parole il significato da manuale di pattern: una soluzione conosciuta per un problema ricorrente.

Se ne possono trarre due conclusioni a mio parere. Innanzitutto che il pattern è tanto più efficace, quanto più è sperimentato. In fin dei conti l'esperienza nell'uso dei pattern porta a trovare sempre più soluzioni che vi possano essere ritagliate e soprattutto a dare una applicazione migliore e più efficace del pattern stesso. In secondo luogo, è l'esperienza che porta al pattern e non viceversa. Il pattern nasce innanzitutto dal riconoscimento di un problema ricorrente e poi della soluzione che gli si può dare. E come una costruzione mentale, diventa quasi un automatismo, che permette di migliorare l'eleganza e con essa l'efficacia del codice.

powered by IMHO