2. REFACTORING
L'atto del modificare la struttura
interna del codice per renderlo
più comprensibile e modificabile,
senza alterarne il comportamento
osservabile.
2
3. RE-FUCK-TORING
L'atto del modificare la struttura del
codice per piegarla alle proprie
intenzioni, rendendolo
incomprensibile agli altri, non testabile,
non mantenibile e non riutilizzabile.
3
4. PERCHÉ PERDERE TEMPO IN
QUESTO MODO?
• D'altra
parte il codice funziona, perché
modificarlo?
• Non
dà valore aggiunto al prodotto.
4
6. È MANTENIBILE?
• Il
codice NON è per sempre.
•I
requisiti cambiano.
• Le
dipendenze cambiano.
• Le
prestazioni cambiano.
• Le
idee che sembravano buone non lo sono più abbastanza.
• Gli
sviluppatori cambiano.
6
7. È LEGGIBILE?
• Tutti
sanno scrivere codice comprensibile da un computer, i buoni
programmatori scrivono codice comprensibile da un umano.
• Non
siete da soli: dovete programmare come se i vostri colleghi
fossero violenti psicopatici che sanno dove abitate.
• Il
codice è di tutti.
• Il
tempo che ci serve per scrivere bene (una volta) è minore di
quello che serve per capire codice incomprensibile (tutte le volte
che serve).
7
8. È TESTABILE?
• Il
codice deve essere pensato per il testing, come le schede
madri.
• Se
non è leggibile e bisogna modificarlo, chi garantisce che non
vengano inseriti errori?
8
9. È RIUTILIZZABILE?
• Questa
classe può essere usata insieme ad altre per fare un
altro lavoro?
• Oppure
devo perdere tempo per farne un'altra molto simile?
• Esempio: ho
una classe che raddoppia gli interi: devo perdere
tempo a fare una classe che triplica. Perché non ho fatto una
classe che moltiplica, mannaggia!
9