Mi occupo di modernizzare applicazioni esistenti. Molte aziende utilizzano ogni giorno software che funziona ma è diventato difficile da far evolvere: tecnologie non più supportate, dipendenze non aggiornate da anni, autori originali non più disponibili. Una riscrittura completa è costosa e rischiosa; nella maggior parte dei casi è preferibile modernizzare l'applicazione in modo incrementale, senza interromperne l'utilizzo.
Ambiti di intervento
- Migrazioni incrementali del frontend: da Blade e jQuery a Inertia e React, da Redux tradizionale a Redux Toolkit. Codice esistente e nuovo convivono, e ogni funzionalità migrata può essere rilasciata singolarmente.
- Aggiornamento dello stack tecnologico: adeguamento di PHP, Node.js, Laravel, React e Next.js, e delle relative dipendenze, a versioni supportate.
- Contratti tipizzati tra backend e frontend: introduzione di DTO e di una specifica OpenAPI da cui derivano i tipi del frontend, in modo che la struttura dei dati resti allineata tra le due parti.
- Recupero di progetti ereditati: analisi del codice sviluppato da altri fornitori, ricostruzione della documentazione, messa in sicurezza e ripresa dello sviluppo.
- Ambienti di sviluppo e deploy riproducibili con Docker, per progetti che oggi esistono solo sul server di produzione.
Metodo
Ogni migrazione è accompagnata da un documento, aggiornato nel corso del lavoro, che descrive le parti già migrate, i pattern adottati e le criticità ancora aperte. Ogni funzionalità migrata viene confrontata con l'originale sia nell'interfaccia sia nel codice, perché molti comportamenti rilevanti non sono documentati.
Nelle migrazioni di grandi dimensioni, che richiedono coerenza tra centinaia di funzionalità, uso anche strumenti di intelligenza artificiale secondo il metodo descritto nella pagina sullo sviluppo con l'AI.