REFACTORINGTalk 6
���1
REFACTORING
L'atto del modificare la struttura interna del codice per renderlo più comprensibile e modificabile, senza alterarne il comportamento osservabile.
���2
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
PERCHÉ PERDERE TEMPO IN QUESTO MODO?
• D'altra parte il codice funziona, perché modificarlo?
• Non dà valore aggiunto al prodotto.
���4
IL TUO CODICE FA SCHIFO
È leggibile?È mantenibile?
È testabile? È riutilizzabile?
���5
È 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
È 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
È 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
È 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
���10
CODE SMELL• Codice duplicato
• Metodo troppo lungo
• Classe troppo grande
• Troppi parametri
• Commenti di che?
• Nomi oscuri
• Dead code
���11
OPERAZIONI DI REFACTORING
���12
���13
Top Related