Categoria

Pagina 1 di 2

Legacy Code: il codice che nessuno vuole toccare è spesso il più importante

Legacy code, nel mio lessico, è qualsiasi codice in produzione che produce valore ma che nessuno nel team osa toccare. Non è necessariamente vecchio: può essere un'applicazione Laravel di tre anni fa scritta male, così come un gestionale PHP del 2008. Il denominatore comune è il rischio percepito di romperlo.

In questa categoria scrivo di come si interviene sul legacy: assessment iniziale, identificazione delle zone ad alto rischio, introduzione graduale di test, refactoring chirurgico, audit di sicurezza (il legacy è spesso un colabrodo di vulnerabilità), migrazione di versione PHP. Il tutto con l'obiettivo di ridurre il rischio operativo mantenendo il business in funzione.

Se hai una codebase legacy che rallenta l'azienda o che genera paura ogni volta che va modificata, parliamone: un assessment strutturato è il primo passo per recuperare il controllo. Oppure scopri come affronto i progetti legacy.

Il legacy non è un problema tecnico. È un problema di coraggio. La tecnica serve a dare strumenti a chi quel coraggio ce l'ha.

LLM per generazione test automatici: da 5% a 70% di copertura su codebase PHP legacy

LLM per generazione test automatici: da 5% a 70% di copertura su codebase PHP legacy Partire da 5% di copertura test su un codebase legacy è demoralizzante. Portarla al 70% in 3 mesi è realistico con LLM nell'anello di supporto - ma solo se il processo è strutturato. Ti mostro il workflow che ho testato: LLM genera characterization test sul comportamento esistente, sviluppatore verifica, itera. Con catalogo degli anti-pattern LLM tipici (test che passano sempre, assertion inutili) e come rilevarli. Continua a leggere
Ultima modifica:

Migrare un gestionale PHP 5.6 a PHP 8.4 senza riscriverlo: il caso di un e-commerce torinese con 12 anni di codice procedurale

Migrare un gestionale PHP 5.6 a PHP 8.4 senza riscriverlo: il caso di un e-commerce torinese con 12 anni di codice procedurale Un e-commerce torinese con 47.000 righe di PHP 5.6 procedurale, 340 chiamate mysql_connect(), un hosting che aveva annunciato la rimozione di PHP 5.6 entro 60 giorni, e un titolare che non poteva permettersi downtime. In quattro settimane l'ho migrato a PHP 8.4 senza riscrivere l'applicazione: ecco il metodo, gli strumenti, le breaking changes reali e le decisioni che hanno fatto la differenza. Continua a leggere
Ultima modifica:

Modernizzare un gestionale finanziario PHP 5.4 sotto vincolo NIS2: quattro mesi per portare a compliance un sistema di 93.000 righe con dati di 11.000 clienti

Modernizzare un gestionale finanziario PHP 5.4 sotto vincolo NIS2: quattro mesi per portare a compliance un sistema di 93.000 righe con dati di 11.000 clienti Gestionale PHP 5.4 di un intermediario creditizio: 93.000 righe, dati di 11.000 clienti, password in MD5, zero cifratura, backup su disco USB. NIS2 e DORA imponevano adeguamento immediato. Da settembre a dicembre 2025 ho portato il sistema a PHP 8.4 con cifratura, audit trail, 2FA e documentazione che ha superato la verifica dell'auditor. Continua a leggere
Ultima modifica:

Costruire un agente AI per l'analisi tecnica di codebase PHP legacy con Claude API

Costruire un agente AI per l'analisi tecnica di codebase PHP legacy con Claude API Quando mi consegnano un progetto PHP legacy senza documentazione, la prima settimana è sempre la stessa: leggere codice, mappare dipendenze, identificare i punti critici. Ho automatizzato questa fase con un agente Claude che processa il codice in chunk, costruisce una mappa delle dipendenze e produce un report strutturato. Continua a leggere
Ultima modifica:

Come introdurre test minimi in un progetto PHP legacy senza bloccare lo sviluppo

Come introdurre test minimi in un progetto PHP legacy senza bloccare lo sviluppo Un gestionale PHP legacy con zero test e 3 regressioni al mese: ogni fix rompeva qualcosa. In 5 giorni ho introdotto 28 smoke test HTTP e 12 snapshot test sulle funzioni di calcolo - senza toccare il codice applicativo. Regressioni in produzione scese da 3/mese a zero nel primo trimestre. Continua a leggere
Ultima modifica:

Subentrare senza sviluppatore: cosa fare quando resti senza manutentore su una base di codice PHP legacy

Subentrare senza sviluppatore: cosa fare quando resti senza manutentore su una base di codice PHP legacy Un gestionale PHP su VPS OVH, il freelance sparito da tre mesi, credenziali perse, nessun backup del codice e il certificato SSL in scadenza tra 8 giorni. Le prime 48 ore di un subentro d'emergenza: mappatura accessi, backup immediato, rotazione credenziali e stabilizzazione prima di qualsiasi modifica. Continua a leggere
Ultima modifica:

Osservabilità minima per applicazioni PHP legacy: logging strutturato, metriche essenziali e alert senza riscrivere il codice

Osservabilità minima per applicazioni PHP legacy: logging strutturato, metriche essenziali e alert senza riscrivere il codice Un gestionale PHP legacy dove gli errori si scoprivano dalle telefonate dei clienti: nessun log strutturato, nessun alert, MTTR medio di 4 ore. Ho introdotto Monolog con output JSON, metriche operative con cron e alert Telegram in 5 giorni - senza riscrivere una riga di codice applicativo. MTTR sceso a 22 minuti. Continua a leggere
Ultima modifica:

Audit tecnico iniziale di un progetto PHP legacy: metodo operativo per i primi 30 giorni

Audit tecnico iniziale di un progetto PHP legacy: metodo operativo per i primi 30 giorni Un gestionale PHP 7.0 ereditato da un freelance sparito: 43.000 righe di codice, nessuna documentazione, e il titolare che deve decidere se investire nella modernizzazione o riscrivere da zero. In 30 giorni ho prodotto un audit completo con PHPStan, Psalm, analisi delle dipendenze e una roadmap di intervento con costi e priorità. Continua a leggere
Ultima modifica:

Refactoring del codice PHP legacy: guida pratica per modernizzare un'applicazione senza riscriverla

Refactoring del codice PHP legacy: guida pratica per modernizzare un'applicazione senza riscriverla Un gestionale PHP 5.6 con 23.000 righe, zero test e debito tecnico che rendeva ogni modifica un rischio: il cliente pagava il triplo per ogni nuova funzionalità rispetto a un'applicazione moderna. In tre mesi di refactoring incrementale con Strangler Fig Pattern, PHPStan e Rector l'ho reso manutenibile senza riscrivere una riga da zero. Continua a leggere
Ultima modifica:

Audit di sicurezza per applicazioni PHP legacy: una guida pratica per identificare e risolvere le vulnerabilità

Audit di sicurezza per applicazioni PHP legacy: una guida pratica per identificare e risolvere le vulnerabilità Un gestionale PHP 7.0 con 14 SQL injection, 23 punti XSS e un file phpinfo.php accessibile pubblicamente con tutte le credenziali visibili. L'audit che ho condotto in 3 giorni con grep, Psalm taint analysis e OWASP ZAP, e il piano di remediation che ha chiuso le 37 vulnerabilità critiche in due settimane. Continua a leggere
Ultima modifica: