Quando si parla di refactoring, di solito si pensa a un processo tecnico, lineare, fatto di codice, test e rilascio. Ma la realtà, quando si ha a che fare con un sistema come Prestashop 1.6 pesantemente modificato nel tempo, è ben diversa: è un viaggio tra eredità, caos e metodo.
Il punto di partenza: un mostro di codice cresciuto nel tempo
Il progetto nasceva su una base Prestashop 1.6, ma nel corso degli anni aveva subito modifiche profonde: override di classi core, estensioni dirette di controller, moduli custom scritti in epoche diverse e senza un vero standard comune. La migrazione verso Prestashop 9 significava quindi solo una cosa: riscrivere da zero.
La prima decisione: separare per capire
Per prima cosa, ho deciso di isolare ogni modulo sviluppato internamente. Per ciascuno di essi ho creato un repository dedicato, in modo da poter lavorare in modo pulito e indipendente. Questa separazione è stata fondamentale per permettere un’analisi mirata: meno rumore, più contesto.
L’audit dei moduli: capire prima di agire
Ogni repository è diventato il terreno di lavoro di un agente AI (Copilot, Codex o ChatGPT), a cui ho chiesto di eseguire un audit approfondito: identificare hook, tabelle, UI, logica di business e dipendenze. L’obiettivo non era modificare, ma documentare in modo chiaro cosa facesse ogni modulo.
I risultati di questa analisi venivano salvati in una cartella audit_update/, una sorta di archivio tecnico che conteneva tutte le informazioni necessarie per riscrivere il modulo da zero, compatibile con Prestashop 8 e 9.
Collaborare con l’AI come un team
In questa fase ho sviluppato un vero e proprio flusso di collaborazione con l’intelligenza artificiale. Ogni modulo passava per più cicli di analisi e revisione: prima l’audit tecnico, poi la validazione da parte di ChatGPT sugli standard del CMS, quindi eventuali correzioni suggerite a Codex o Copilot. Solo quando tutto era chiaro, si passava alla riscrittura.
Dall’audit all’AGENTS.md
Una volta completata l’analisi, il passo successivo era creare un file AGENTS.md: un documento guida per gli agenti AI che avrebbero poi generato o modificato il codice. In questo file venivano definiti i ruoli (Auditor, Architect, Coder, Reviewer) e le regole di sviluppo (PSR-12, compatibilità PHP 8.1+, nessun override del core, uso di Symfony Forms, ecc.).
Nuovo repository, nuova vita
Da lì nasceva un nuovo repository “pulito”, che conteneva solo la cartella audit_update/ e l’AGENTS.md. Niente codice legacy, solo conoscenza e metodo. Era la base epistemica per la fase successiva: il vero sviluppo del modulo nuovo, costruito da zero ma con tutta la consapevolezza accumulata nella fase di audit.
Il ciclo di raffinamento continuo
Il processo non è mai lineare: ogni modulo passa per più cicli di prova, revisione e ottimizzazione. Il mantra è diventato “prova, rifinisci, ritenta, torna indietro, fallo due volte e poi ok”. Dopo due iterazioni complete, il codice è pulito, stabile, e soprattutto, standard.
Dal caos all’ordine
Questo approccio mi ha permesso di trasformare un progetto ingestibile in un ecosistema modulare, documentato e scalabile. L’uso coordinato degli strumenti AI ha reso possibile mantenere un livello di qualità e coerenza impossibile da raggiungere manualmente in tempi umani. Il risultato? Moduli Prestashop 9 ben scritti, compatibili, e soprattutto, manutenibili.
Nel prossimo articolo racconterò nel dettaglio il metodo di lavoro che ho messo a punto — una vera e propria pipeline AI-driven per la migrazione e il refactoring di moduli legacy.

