Nell'ingegneria del software, e in particolare nel contesto dello sviluppo agile e dell'extreme programming,[1][2] l'espressione code smell (letteralmente "puzza del codice") viene usata per indicare una serie di caratteristiche che il codice sorgente può avere e che sono generalmente riconosciute come probabili indicazioni di un difetto di programmazione.[1] I code smell non sono (e non rivelano) "bug", cioè veri e propri errori, bensì debolezze di progettazione che riducono la qualità del software, a prescindere dall'effettiva correttezza del suo funzionamento. Il code smell spesso è correlato alla presenza di debito tecnico e la sua individuazione è un comune metodo euristico usato dai programmatori come guida per l'attività di refactoring, ovvero l'esecuzione di azioni di ristrutturazione del codice volte a migliorarne la struttura, abbassandone la complessità senza modificarne le funzionalità.[1]

Nella letteratura sul refactoring esistono numerosi elenchi di code smell; il più noto e influente è quello proposto da Martin Fowler nel suo celebre libro sul refactoring.[1] Sia nell'elenco di Fowler che in altri, i code smell non sono mai definiti in termini assoluti, e la loro identificazione comprende sempre un elemento di giudizio soggettivo da parte del programmatore.

Esempi di code smell

[modifica | modifica wikitesto]

Note

[modifica | modifica wikitesto]
  1. ^ a b c d Fowler et al. (1999)
  2. ^ Binstock (2011)
  3. ^ a b c J. Atwood, Code smells Archiviato il 18 gennaio 2013 in Internet Archive. presso codinghorror.com
  4. ^ Code comments: Good or Bad? Archiviato il 22 marzo 2016 in Internet Archive., presso tobeaile.com
  5. ^ You Arent Gonna Need It

Bibliografia

[modifica | modifica wikitesto]

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica