Code smell: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: sintassi dei link e modifiche minori
Riga 1:
Nell'[[ingegneria del software]], e in particolare nel contesto dello [[metodologie agili|sviluppo agile]] e dell'[[extreme programming]],<ref name="fowlerbook"/><ref>Binstock (2011)</ref> 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.<ref name="fowlerbook">Fowler ''et al.'' (1999)</ref> 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. L'individuazione di ''code smell'' è 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 senza modificarne le funzionalità).<ref name="fowlerbook"/>
 
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.<ref name="fowlerbook"/> 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==
Riga 11:
* ''Costanti magiche'': valori letterali (numeri, stringhe) che appaiono direttamente ("cablati") nel codice.
* ''Espressioni complesse'' di basso livello (per esempio aritmetiche, di manipolazione di stringhe, ...).
* ''What comments'' ("commenti cosa"): commenti che spiegano cosa fa una certa porzione di codice (sintomo che il codice non è sufficientemente chiaro di per sé).<ref>[http://tobeagile.com/2009/08/20/code-comments-good-or-bad/ Code comments: Good or Bad?], presso [[http://tobeagile.com tobeaile.com]</ref>
 
==Note==