“Ho passato notti insonni cercando di aggiungere funzioni nel codice che abbiamo acquisito da un’altra azienda. Ho a che fare con la forma più pura di Legacy Code”
“Sto avendo una vera difficoltà a trattare con un codice intricato e non strutturato con cui devo lavorare ma di cui non capisco nulla. Legacy Code!”
Legacy code è un termine che probabilmente ha un sacco di definizioni diverse come -codice acquisito da qualcun altro, codice scritto da qualcun altro, codice che è difficile da capire o codice scritto in tecnologie obsolete. Qualunque sia la definizione, la maggior parte di noi crede che il codice legacy faccia paura.
Domanda> Come definiresti il codice legacy?
Definizione del codice legacy
Michael Feathers nel suo libro “Working Effectively with Legacy Code” definisce il codice legacy come codice senza test.
Codice senza test è un cattivo codice. Non importa quanto bene sia scritto; quanto bene sia strutturato; quanto bene sia incapsulato.Senza test non c’è modo di dire se il nostro codice sta migliorando o peggiorando.
Bene, una versione leggermente modificata di questa definizione è “il codice senza test di unità è chiamato codice legacy”. È sempre meglio avere dei test il più vicino possibile al codice (test unitari > test di integrazione > test UI). Quindi, non sarebbe ingiusto chiamare un codice senza test unitari un codice legacy.
Lavorare con il codice legacy
Domanda>Quale approccio adotterai se dovessi fare un cambiamento nel codice legacy?
Molti di noi potrebbero dire, “farò il cambiamento e lo chiamerò un giorno, perché preoccuparsi di migliorare il codice”. La motivazione dietro questo processo di pensiero potrebbe essere –
Non ho abbastanza tempo per rifattorizzare il codice, Preferirei fare un cambiamento e completare la mia storia
Perché rischiare di cambiare la struttura del codice che è stato in produzione per molto tempo
Qual è il beneficio generale del refactoring del codice legacy
Michael Feathers chiama questo stile di fare un cambiamento come Edit and Pray. Pianifichi e fai le tue modifiche e quando hai finito, preghi e preghi ancora di più per ottenere le modifiche giuste.
Con questo stile, si può solo contribuire ad aumentare il codice Legacy.