jeffrey way

Visual debt: la polemica

Un paio di mesi fa Jeffrey Way ha pubblicato un video su Laracasts nel quale presentava il concetto di Visual Debt. Questo video ha suscitato una polemica nata da alcuni sviluppatori e alla quale Jeffrey Way non si è sottratto.

If you watch this video backwards everything is fine.

Il contenuto del video è stato anche argomento di discussione tra me e alcuni colleghi. Cerchiamo di descrivervi la tesi Jeffrey Way nel modo più oggettivo possibile e successivamente cercheremo di darvi il nostro punto di vista sulla questione. “A ognuno di voi le conclusioni”.

Il video inizia con l’esempio di una classe che utilizza un’interfaccia nella quale vengono descritti i metodi, un gestore di eventi e altre cose. Sostanzialmente Jeffrey Way inizia a rimuovere l’interfaccia, la dichiarazione dei tipi di dato, ecc… fino a portare il codice PHP al minimo indispensabile per farlo funzionare come previsto.

Secondo la sua opinione questa pratica, permette di migliorare la leggibilità del codice e diminuire quello che lui stesso definisce visual debt: utilizzare codice non strettamente necessario, rende il codice meno leggibile e più faticoso da interpretare per uno sviluppatore che deve lavorarci.

Jeffrey chiude dicendo che questo è il suo consiglio e che ognuno poi può prendere le sue decisioni con il proprio team.

La reazione

I commenti non si sono fatti attendere. Sintetizzando, i punti principali sui quali molti hanno fatto leva sono:

  • Il video incoraggia bad practices.
  • Il visual debt viene pagato con technical debt.
  • Incoraggiare questo approccio è dannoso per i meno esperti che stanno imparando.
  • Ciò che nel video è considerato superfluo sono invece utili informazioni per chi legge il codice, informazioni che definiscono il corretto funzionamento e utilizzo.

Vi vogliamo anche segnalare questo post in inglese che prende in giro la tesi di Jeffrey Way.

La nostra opinione

Innanzi tutto ci teniamo a specificare che la nostra stima per Jeffrey Way è indubbia, da uno come lui si può solo imparare. Ma si sa, in questo lavoro, come in molti altri bisogna essere aperti al confronto e si può imparare sempre anche dai meno esperti.

Detto questo, crediamo che la verità stia nel mezzo, cioè dipende dal contesto, dal progetto sul quale si sta lavorando. Se si sta sviluppando “il sito web del verduraio sotto casa” probabilmente non abbiamo nemmeno bisogno di un controller, diversamente se si sta lavorando su un progetto enterprise il codice deve essere blindato e l’utilizzo delle best practices condivise dalla comunità di sviluppatori PHP sarà un certificato di garanzia per affidabilità e coerenza.

In generale condividiamo anche le preoccupazioni di coloro che definiscono questo video dannoso per chi sta imparando. Non si dovrebbe mai incoraggiare l’abbandono delle best practices.

 

Leave a reply