Programmatori dentro

Post da Luglio 2009

Codice sorgente e shampoo: istruzioni per l’uso

Luglio 9, 2009 · Lascia un Commento

Era da un po’ di tempo che avevo in testa delle riflessioni su come scrivere il codice sorgente, ma non riuscivo a trovare il modo giusto di esprimerle. Fortunatamente mi ha salvato una doccia (è proprio vero che il bagno è il posto dove nascono le idee e le soluzioni migliori). Dovevo lavarmi i capelli con lo shampoo e quello che usavo di solito era finito così ho guardato se per caso ce ne fosse uno nuovo. Mi sono imbattuto in questo flacone:

shampoo_ko

shampoo_ko

Ci ho messo un po’ per capire cosa avevo davanti (shampoo? balsamo? bagnoschiuma?) ma alla fine l’ho scoperto:

dettaglio shampoo

dettaglio shampoo

Questo è quello che considero una matafora perfetta.

Provo a tradurla in codice sorgente, è come se una persona scrivesse un codice (una interfaccia volendo limitarsi al flacone e non al contenuto) bellissimo, elegante (notate il tappo sagomato e ondeggiante, i diversi colori dei pallini che sfumano, il logo anch’esso ondeggiante), ma che gli altri fanno molta fatica a capire che cos’è.

Lo scopo del flacone è quello di contenere lo shampoo, lo scopo di un’interfaccia è quello di far capire come usare il modulo che la implementa. Se abbiamo di fornte un’interfaccia bella ed incomprensibile qualcosa è andato storto; è molto meglio qualcosa di più semplice, ma adatto allo scopo. Per esempio:

shampoo_ok

shampoo ok

Qui non mi devo fermare a pensare cosa ho davanti, nemmeno sforzarmi di leggere delle scritte microscopiche con pochissimo contrasto fra il il testo e lo sfondo.

Conclusione: quando scriviamo del codice, il primo scopo è di renderlo leggibile non bello ed elegante. Credo che se  si rispetta questa regola il risultato sia comunque un buon grado eleganza, ma soprattutto tanto, tanto e tanto tempo risparmiato da parte di chi lo usa (e probabilmente ci vuole anche molto meno anche a scriverlo).

Lo so che scrivere codice elegante  e sofisticato è una sensazione veramente piacevole, una sorta di autogratificazione, ma non è niente se paragonato alla soddisfazione di ricevere i complimenti sinceri da un’altra persona.

Categorie: Pensieri sparsi · sviluppo software