Code Smell
Nel campo dello sviluppo del software ci si riferisce a puzza di codice o “code smell” per indicare porzioni di codice implementate in modo non ottimizzato. Non sono necessariamente errori, ma parti del software da migliorare.
Questo concetto è spesso utilizzato quando si è in presenza di debito tecnico (del quale abbiamo parlato in uno dei precedenti articoli che puoi leggere qui).
Conoscere i code smells è essenziale per garantire un design efficace e flessibile del codice, specialmente quando si lavora in modalità agile. Vi sveliamo dunque una lista dei dieci code smells più comuni da ricercare in fase di refactoring:
- Commenti: cercare di eliminare commenti inutili e ridondanti, specialmente quelli relativi a parti di codice autodescrittive. Il software deve contenere commenti concisi ed utili alla sua comprensione, è dunque buona norma riflettere su questa documentazione e scriverla adeguatamente.
- Troppi argomenti: se una funzione risulta avere molti argomenti (per esempio più di 3), allora è bene ripensarla e alleggerirla. L’ideale è mantenere le funzioni senza argomenti, o con il minor numero necessario per arrivare allo scopo, con un massimo ideale di tre.
- Funzione con scopi multipli: una funzione deve essere dedicata ad un unico obiettivo. Se nel codice sono presenti funzioni che hanno più di uno scopo potremmo avere un problema, è utile in questo caso ripensare e suddividere al meglio il codice, questo rende il software più leggero e comprensibile, abbassandone la complessità.
- Inconsistenza: questo code smell è purtroppo molto diffuso, specialmente quando si lavora in più persone sullo stesso codice. L’inconsistenza rende difficile la lettura del software, portando spesso a potenziali incomprensioni. È utile in questi casi definire e concordare delle convenzioni, che andranno mantenute durante lo sviluppo ed il mantenimento del progetto.
- Duplicazione: non è raro trovare all’interno del progetto segmenti di codice ripetuti, anche in modo identico, più e più volte. Anche in questo caso è necessaria un’ottima coordinazione di tutto il team di lavoro per eliminare questa fastidiosa complessità.
- Nomi di funzioni e variabili: è buona norma nominare le funzioni che si creano descrivendole attraverso il loro scopo, in modo da rendere immediatamente chiaro a cosa servano. Lo stesso vale per le variabili, il cui nome deve descrivere in modo appropriato il contenuto, usare nomi di fantasia, singole lettere o incomprensibili abbreviazioni rende più difficile l’utilizzo delle variabili e richiede tempo aggiuntivo per risalire al loro contenuto.
- Variabili o funzioni inutili: per mantenere il codice pulito e ordinato è consigliato eliminare tutte le funzioni o variabili che non vengono utilizzate. La loro presenza può essere legata a cambiamenti di codice o più semplicemente dimenticanze, essendo però completamente inutili vanno eliminate.
- Verifica del valore null: si tratta di diminuire il più possibile, fino ad azzerare tutti i controlli sui valori nulli. Questi controlli sono superflui all’interno del codice, poiché per garantire una gestione corretta ed efficace nessuna funzione dovrebbe restituire il valore null in risposta.
- Metodo pecora nera: il metodo in questione è uno dei metodi di una classe che si discosta in modo significativo da tutti gli altri presenti all’interno della classe stessa, diventando quindi la pecora nera. In questo caso è probabile che questa funzionalità debba essere modificata o spostata dalla classe, per rispettare il principio di singola responsabilità delle classi (SRP).
- Codice commentato: chi lavora al software ha sicuramente trovato primo a dopo parti di codice commentante, che risultano dunque completamente inutili. Questa casistica descrive molto bene il termine code smell, queste parti commentante infatti possono ristagnare per anni, ammuffire nel codice e appesantirlo senza dare alcun apporto utile, è proprio qui che nasce la puzza. Il consiglio è semplice in questo caso: cancellare! Se quel codice dovesse risultare utile in futuro si potrà sempre usare il controllo di versione per ripristinarlo.
Siamo una squadra di esperti e appassionati del codice e dello sviluppo. Soprattutto, ci piace curare ogni progetto, ponendo la massima attenzione non solo al risultato finale, ma a tutto il percorso. Contattaci per una consulenza, un preventivo o un semplice confronto. Condividere per noi è un momento di crescita, Siamo umana e professionale. Restiamo in contatto!