06 refactoring

Post on 17-May-2015

83 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

http://sourcemaking.com/refactoring

���14

top related