Divertirsi anche con il codice legacy
-
Upload
marco-amendola -
Category
Software
-
view
145 -
download
5
Transcript of Divertirsi anche con il codice legacy
![Page 1: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/1.jpg)
getlatestversion
Divertirsi anche con il codice legacy
Marco Amendola@marcoamendola
Giorgio Di Nardo@akelitz
![Page 2: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/2.jpg)
Sponsor
![Page 3: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/3.jpg)
• 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](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/4.jpg)
• 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](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/5.jpg)
• 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](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/6.jpg)
Applicazione legacy
Demo
![Page 7: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/7.jpg)
Primo refactoring
Demo
![Page 8: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/8.jpg)
• 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](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/9.jpg)
Aggiunta test
Demo
![Page 10: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/10.jpg)
• 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](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/11.jpg)
Secondo refactoring
Demo
![Page 12: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/12.jpg)
• Estrazione metodi
• Feedback immediato attraverso esecuzione test
• Rimozione stored procedure
Migliorare il codice dell’applicazionesecondo refactoring
![Page 13: Divertirsi anche con il codice legacy](https://reader033.fdocument.pub/reader033/viewer/2022051523/58ad99b61a28abde5e8b4f83/html5/thumbnails/13.jpg)
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