PrincipiDRY, KISS & YAGNI
Questi sono tre principi che ogni sviluppatore dovrebbe rispettare, perché riguardano il codice pulito. In questo articolo andremo a capire cosa significa ognuno di loro.
PrincipioDRY
DRY sta per Don’t Repeat Yourself. Nel libro ‘The Pragmatic Programmer’, possiamo vedere questa definizione di DRY:
Ogni pezzo di conoscenza deve avere una singola, non ambigua, autorevole rappresentazione all’interno di un sistema.
Questo significa che non si dovrebbe avere codice duplicato. È più facile mantenere un codice che è solo in un posto, perché se hai bisogno di cambiare qualcosa nel codice, devi solo cambiare in un posto. Oltre a questo, se avete lo stesso codice in due o più posti, la possibilità che questo codice diventi diverso nel tempo è alta, e quando questo accade diventerà un modo facile per introdurre bug nel vostro sistema. Il codice duplicato rende anche il codice più complesso e inutilmente più grande.
Anche voi non dovreste scrivere codice ambiguo. Le vostre classi, le vostre variabili, le vostre funzioni, dovrebbero avere un nome specifico, e il loro nome deve corrispondere alla loro responsabilità. Se hai una funzione, dovresti sapere cosa fa la funzione semplicemente leggendo il suo nome, senza dover leggere il codice al suo interno.
Nel libro ‘The Pragmatic Programmer’ possiamo anche vedere che:
DRY riguarda la duplicazione della conoscenza, dell’intento. Si tratta di esprimere
la stessa cosa in due posti diversi, possibilmente in due modi totalmente diversi
Significa che non si tratta solo di copia e incolla del codice – sì, anche questo è incluso – ma va oltre. Si tratta anche di avere codice diverso che fa la stessa cosa. Forse puoi avere codice diverso in due o più posti, ma fanno la stessa cosa in modi diversi, anche questo dovrebbe essere evitato.
Principio KISS
KISS è un acronimo per Keep It Simple, Stupid. Questo principio dice di rendere il vostro codice semplice. Si dovrebbe evitare la complessità non necessaria. Un codice semplice è più facile da mantenere e più facile da capire.
È possibile applicare questo principio nella progettazione e nell’implementazione del codice. Dovreste eliminare il codice duplicato, rimuovere le caratteristiche non necessarie, non usare variabili e metodi non necessari, usare nomi per variabili e metodi che abbiano senso e che corrispondano alle loro responsabilità, e sempre, quando è possibile, seguire gli standard di sviluppo del codice. Dovreste anche separare le responsabilità delle vostre classi e le responsabilità dai livelli del progetto.
A volte non avete bisogno di implementare qualcosa di nuovo per soddisfare le vostre esigenze, potete semplicemente fare uso delle caratteristiche del linguaggio di programmazione che state usando. Per questo, è bene che conosciate le caratteristiche del linguaggio di programmazione con cui state lavorando.
Se state lavorando in un codice già implementato, e vedete qualcosa che non è necessario o che potrebbe essere più semplice, dovreste considerare di rifattorizzarlo.
Principio YAGNI
YAGNI sta per You Ain’t Gonna Need It. È un principio della metodologia di sviluppo del software di Extreme Programming (XP). Questo principio dice che non si dovrebbero creare caratteristiche che non sono realmente necessarie.
Questo principio è simile al principio KISS, una volta che entrambi mirano a una soluzione più semplice. La differenza tra loro è che YAGNI si concentra sulla rimozione delle funzionalità e della logica non necessarie, mentre KISS si concentra sulla complessità.
Ron Jeffries, uno dei co-fondatori dell’XP, una volta disse:
Inserite sempre le cose quando ne avete effettivamente bisogno, mai quando prevedete di averne bisogno.
Significa che non si dovrebbe implementare una funzionalità solo perché si pensa che un giorno potrebbe servire, ma implementarla solo quando se ne ha davvero bisogno. Facendo così eviterete di spendere tempo con implementazioni che non erano nemmeno necessarie, e forse non saranno mai usate.
Conclusione
Seguire questi principi, vi permetterà di scrivere codice migliore. Ricordate che un codice pulito è più facile da scrivere, più facile da capire e sicuramente vi farà risparmiare tempo quando dovrete cambiare o implementare qualcosa. Evitate di usare codice duplicato, cercate di mantenere il vostro codice il più semplice possibile, e implementate le funzioni solo quando è veramente necessario.