Clean Code, Methods

by nicola aramini

Posted on luglio 31, 2017 at 07:34 AM

Methods

Giusto prima di spiagge affollate, ombrelloni, e gelati parliamo di qualcosa di più divertente (veramente?)…
Clean Code!

In particolare oggi parliamo di METODI.

Fin da quando ho iniziato a sviluppare tutto quello che mi dicevano sui metodi era:
“i metodi devono essere piccoli perchè metodi piccoli sono più facili da manutenere.”

Negli anni ho imparato invece che i metodi piccoli sono solo una conseguenza di wrappare un intero concetto (o rispettare il single responsibility principle).

Per spiegare meglio voglio usare un esempio che ho sentito poco tempo fa ad un talk: immaginate di chiedere ad un vostro collega come sono andate le vacanze, la risposta che probabilmente riceverete nell’immediato (almeno spero!) sarà:
“bene, grazie.”.

Adesso immaginate che la risposta sia la seguente:
“Il primo giorno siamo arrivati alle 7 e siamo andati subito al mare. Dopo una giornata di sole siamo andati a casa a fare la doccia poi siamo usciti a mangiare.
Il secondo giorno ci siamo svegliati verso le 9 e abbiamo fatto la spesa. Poi siamo andati ancora al mare.
Il terzo giorno…”.

Quale collega preferite? il primo o il secondo?

Se a voi interessava sapere se il collega si è goduto le vacanze vi interessavano tutti i dettagli dati dal secondo? Al fine di comprendere come sono andate le ferie avete dovuto prestare attenzione al racconto completo per poi decidere che tutte le info non servivano! La stessa cosa avviene con il codice.

Perchè raccontare sempre tutta la storia quando posso “dividere” la storia in racconti più piccoli?
Chi dovrà leggere questo codice non troverà 200 righe ma potrà considerare solo il pezzo che gli interessa.

Di seguito riporto alcuni trick per tentare di rispettare queste regole:

  • NON SCRIVERE MAI LO STESSO CODICE 2 VOLTE: il copia-incolla è tipicamente uno smell di qualcosa che non va, quel codice è sicuramente un concetto (tanto è vero che ne abbiamo bisogno più volte) quindi deve essere sicuramente un metodo;
  • sotto ogni If ci va una riga sola: spesso sotto un blocco If c’è un’azione da fare e spesso, quell’azione è un concetto, quindi, un metodo;
  • i commenti possono essere sostituiti con metodi che spiegano meglio il comportamento di quel codice;
  • metodi con 0 argomenti: tentare di tenere meno argomenti possibili aiuta a rispettare il Single responsibility principle;
  • se un metodo accetta tanti parametri potrebbe essere una soluzione creare una classe che li accetta nel costruttore.

Tutti i consigli sopra riportati non sono da considerare pura verità, per esempio:
se sotto il mio if ci sono 2 righe non succede nulla, anzi, in alcuni casi rende il codice più leggibile.


Notizie sull'autore

nicola aramini

Nicola Aramini Hi! I'm Nicola and I'm a .NET software developer at Elfo. I like my job and i like change to improve. In my free time, as often as I can, i go to the conferences and to the events in order to keep me posted on the new topic about software development.