Divertirsi anche con il codice legacy

13
getlatestversion Divertirsi anche con il codice legacy Marco Amendola @marcoamendola [email protected] Giorgio Di Nardo @akelitz [email protected]

Transcript of Divertirsi anche con il codice legacy

Page 1: Divertirsi anche con il codice legacy

getlatestversion

Divertirsi anche con il codice legacy

Marco Amendola@marcoamendola

[email protected]

Giorgio Di Nardo@akelitz

[email protected]

Page 2: Divertirsi anche con il codice legacy

Sponsor

Page 3: Divertirsi anche con il codice legacy

• Codice scritto da altri che viene

ereditato

• Codice intricato, illeggibile, difficile da

manutenere

• Codice senza test

Cos’è il codice «legacy»

To me, legacy

code is simply

code without tests.

Michael C. Feathers«Working Effectively with Legacy Code»

Page 4: Divertirsi anche con il codice legacy

• Identificare le cose da cambiare

• Individuare i punti di test

• Rompere le dipendenze

• Scrivere i test

• Effettuare le modifiche e/o il refactoring

Gestire le modifiche nel codice legacy

Page 5: Divertirsi anche con il codice legacy

• Applicazione Windows Forms

• Lettura da un file di testo di dati

• Elaborazione

• Importazione all’interno di un database

Progetto di partenza

Page 6: Divertirsi anche con il codice legacy

Applicazione legacy

Demo

Page 7: Divertirsi anche con il codice legacy

Primo refactoring

Demo

Page 8: Divertirsi anche con il codice legacy

• Assegnazione nomi significativi

• Estrazione classe

• Uso del compilatore per individuare punti da sanare

• Trasformazione in metodi espliciti

• Estrazione interfaccia

• Spostamento in libreria esterna

• Ora siamo pronti per i test

Rendere l’applicazione testabile primo refactoring

Page 9: Divertirsi anche con il codice legacy

Aggiunta test

Demo

Page 10: Divertirsi anche con il codice legacy

• Approval test

• Installazione pacchetto Nuget

• Primo run e approvazione

• Test integrazione UI

• Mock dell’interfaccia estratta

• Trucco: far fallire primo test per ottenere valore atteso

• Ora siamo pronti per migliorare il codice

Rendere l’applicazione testabile aggiunta dei test

Page 11: Divertirsi anche con il codice legacy

Secondo refactoring

Demo

Page 12: Divertirsi anche con il codice legacy

• Estrazione metodi

• Feedback immediato attraverso esecuzione test

• Rimozione stored procedure

Migliorare il codice dell’applicazionesecondo refactoring

Page 13: Divertirsi anche con il codice legacy

Feedback Form

http://bit.ly/DOAW16FEED1

Dedicateci 2 minuti del vostro tempo,

e ci aiuterete a crescere e migliorare!

Track Intro

http://bit.ly/DOAW16FEED2

Track Avanzata