Il codice che nessuno osava toccare, ora cresce un pezzo alla volta
Un'applicazione web usata ogni giorno da più aziende, ereditata senza test né ambiente di prova. Ogni modifica ai dati era un salto nel buio. Ho cambiato il modo di modificarla, senza riscriverla.
Da dove partiva l'applicazione
Ho ereditato un'applicazione web usata ogni giorno da più aziende per il loro lavoro. Negli anni era cresciuta con un ramo del codice per ogni azienda, mentre la versione originale era rimasta ferma.
Perché ogni modifica era rischiosa
Ogni modifica ai dati era un salto nel buio. Questi erano i punti deboli:
- Blocchi lasciati da chi c'era prima: togliendo certe opzioni, i dati non erano più modificabili.
- Indirizzi scritti fissi nel codice e azioni che fallivano senza dire nulla.
- Un elenco che mostrava al massimo 10 elementi.
- Nessun ambiente di prova, nessun test, rilasci a mano via FTP e un database locale diverso da quello di produzione.
Come l'ho resa modificabile senza riscriverla
Ho scelto di tenere l'applicazione e di cambiare il metodo per modificarla.
- Script che si possono rilanciare. Le modifiche ai dati passano da script che si possono rilanciare senza danni, con una verifica prima e una dopo.
- Prove su una copia della produzione. Ogni modifica si prova prima sui dati veri, in copia.
- Una guida per ogni rilascio. Indica il commit e i numeri attesi da ricontrollare dopo.
- I documenti salvati non si toccano. I calcoli fatti allora restano quelli di allora.
- Dati esistenti riusati. Le parti nuove usano i dati che ci sono già, così un dato cambiato vale ovunque.
Su questa base sono arrivate le funzioni nuove: un nuovo ruolo utente con i suoi permessi, variazioni dei dati in percentuale con anteprima, calcoli a cascata, API documentate, collegamento al gestionale di un'azienda.
Che cosa è cambiato
- Parti nuove aggiunte senza duplicare i dati.
- Decine di controlli verificano che una modifica non abbia rotto nulla.
- Introdotti oltre 100 controlli automatici sui permessi del nuovo ruolo.
- Documentazione completa delle API, controllata sul codice.
- Oltre 100 gruppi di dati riallineati con uno script provato prima sulla copia.
- Decine di richieste del cliente gestite.
Cosa puoi portarti a casa
- Prima di riscrivere un codice ereditato, conviene rendere affidabile il modo di cambiarlo.
- Ogni modifica ai dati deve poter essere rilanciata senza danni.
- Si prova sempre su una copia della produzione, con i dati veri.
- I documenti già emessi non si ricalcolano: restano come allora.
Dettagli modificati per tutelare la riservatezza del cliente.
Benefici
- Modifiche ai dati verificate prima di andare online
- Documenti già salvati che non cambiano mai
- Un dato aggiornato vale per tutta l'applicazione
- Funzioni nuove senza rimettere in discussione quelle esistenti
Funzionalità
- Un nuovo ruolo utente, con controlli automatici sui suoi permessi
- Variazioni dei dati in percentuale, con anteprima
- Calcoli a cascata
- API documentate
- Collegamento al gestionale di un'azienda
Hai un problema simile?
Raccontami cosa ti serve: ti rispondo io, di solito entro un giorno lavorativo.