alessioperrone.dev

Metodo di sviluppo · PHP / Laravel · AI-assisted

Progetto l’architettura.
Guido e verifico lo sviluppo.

Definisco personalmente struttura, responsabilità dei componenti e vincoli. Guido gli strumenti AI nella produzione di codice e test, poi rivedo le modifiche e verifico il comportamento dell’applicazione.

Email: [email protected]

Dalle decisioni al codice verificato
ProgettoArchitettura e vincoli

Responsabilità, pattern e criteri di verifica

Implementazione AI-assisted

Modifiche circoscritte, guidate dal contesto

VerificoReview, test e integrazione

Codice coerente con il prodotto e il team

L’obiettivo è un software che il team possa capire, mantenere e far evolvere.

Prima le decisioni.
Poi il codice.

  1. Analisi

    Comprendo requisiti, flussi, codice esistente e vincoli. Concordo le priorità e il comportamento atteso.

  2. Architettura

    Definisco componenti, responsabilità, pattern e convenzioni. Valuto l’impatto sui dati e sulle integrazioni.

  3. Implementazione AI-assisted

    Uso l’AI per produrre codice e test in modifiche circoscritte, a partire da contesto, convenzioni e vincoli definiti.

  4. Review e testing

    Rivedo le differenze e verifico regole e integrazioni coinvolte. Seguo il processo di review concordato con il team.

  5. Evoluzione

    Condivido decisioni, dipendenze e interventi successivi. Mantengo aggiornati codice e test delle parti su cui lavoro.

Guido l’implementazione.
Rispondo delle scelte.

Uso gli strumenti AI per produrre codice e test per funzionalità e refactoring. Definisco personalmente l’architettura, il comportamento atteso e i vincoli entro cui implementare.

L’obiettivo è ridurre il lavoro ripetitivo e concentrare la review su regole del prodotto, gestione degli errori e integrazioni. Esamino le modifiche nel contesto dell’applicazione e correggo ciò che serve prima di integrarle.

Un contesto preciso.

Seleziono codice, regole di accesso, contratti delle API e test rilevanti. La richiesta descrive il risultato atteso e i vincoli da rispettare.

Convenzioni condivise.

Esplicito pattern, responsabilità e organizzazione del codice. Le modifiche devono inserirsi nella struttura del progetto ed essere leggibili per chi ci lavora.

Verifiche sul risultato.

Rivedo le differenze, provo i casi critici e controllo le integrazioni. Valuto il comportamento del software, oltre alla correttezza del singolo frammento.

Autonomia operativa.
Un metodo condiviso.

Dentro un team esistente.

Parto dal repository e dalle istruzioni di avvio: ricostruisco i flussi interessati e leggo i test esistenti. Mi allineo a convenzioni, strumenti e processo di review; concordiamo l’area di responsabilità e le decisioni da condividere.

Su software già in uso.

Ricostruisco il comportamento attuale e i collegamenti con dati e sistemi esterni. Propongo interventi circoscritti, chiarendo dipendenze e rischi; condivido le scelte che coinvolgono altre parti dell’applicazione.

Review del codice.
Verifica dei flussi.

La review riguarda responsabilità, leggibilità, gestione degli errori e compatibilità con il codice esistente. Scelgo i test in base a ciò che cambia: regole di dominio, permessi, validazione, integrazioni e percorsi critici.

In Laravel uso PHPUnit per verificare il comportamento server. Quando l’interfaccia riceve HTML da Blade e HTMX, controllo anche i frammenti restituiti nella stessa suite PHP, con dati e autorizzazioni rappresentativi.

Il controllo continua nel browser.

JavaScript, aggiornamenti HTMX e interazioni Alpine richiedono verifiche nel browser. Provo anche navigazione, feedback degli errori e comportamento responsive: un test sul server non descrive da solo l’esperienza di chi usa l’applicazione.

Gli strumenti seguono
il progetto.

Laravel è il mio framework di riferimento. Per gestionali, portali e flussi basati su moduli posso affiancarlo a HTMX e Alpine.js. Scelgo la combinazione in base al prodotto, al team e alla base di codice esistente.

Laravel

Organizzo logica del prodotto, dati, validazione e permessi. Le convenzioni del framework danno una struttura al codice; Blade compone l’HTML in viste riutilizzabili.

HTMX

Un filtro o un modulo può aggiornare una parte della pagina con l’HTML ricevuto dal server. Nei flussi adatti riduco il codice dedicato al collegamento tra dati e interfaccia.

Alpine.js

Gestisco interazioni locali come pannelli, schede e menu. Coordino lo stato nel browser con gli aggiornamenti HTMX, soprattutto quando una parte della pagina viene sostituita.

Editor complessi, esperienze offline o molto stato condiviso nel browser possono richiedere altre soluzioni. La scelta dell’interfaccia dipende dai requisiti, non da una combinazione da applicare a ogni progetto.

Dove tenere la logica.
Cosa far passare al browser.

Per un flusso guidato dai dati del server, restituire HTML può ridurre la logica duplicata e lo stato da sincronizzare. Un frontend separato offre un’altra organizzazione, utile quando l’interfaccia ha esigenze proprie.

Valuto i confini tra le parti, i contratti da mantenere e l’impatto delle modifiche. Questa scelta influenza anche il contesto da preparare per l’AI e le verifiche da eseguire.

Un flusso guidato dai dati del server, organizzato in due modi
Da gestireFrontend separato con API JSONLaravel + HTMX + Alpine.js
Risposta del serverDati JSON da rappresentare nell’interfaccia.HTML già composto da Blade.
Aggiornamento della vistaIl frontend riceve i dati e aggiorna i componenti.HTMX inserisce l’HTML nella parte prevista.
Stato nel browserPuò includere una copia dei dati del server e la relativa sincronizzazione.Posso limitare lo stato locale alle interazioni che ne hanno bisogno.
Una modifica al flussoPuò coinvolgere il contratto API e il codice che lo usa.Può restare vicina alla logica server e alla vista interessata.
TestVerifiche su API, componenti e loro integrazione.PHPUnit per logica e HTML restituito; test nel browser per le interazioni.

Il confronto riguarda queste due architetture. Anche React e Vue possono essere usati con rendering sul server: la quantità di codice dipende dalle scelte e dai requisiti del progetto.

Un filtro con HTMX
e Laravel, in pratica.

Immagina di aggiungere il filtro “Stato” a un elenco di richieste. Posso organizzare il comportamento in questo modo:

  1. La persona sceglie.

    Il controllo del filtro è nella pagina. Alpine può gestire l’apertura di un eventuale pannello.

  2. HTMX invia il filtro.

    Il valore selezionato arriva alla rotta Laravel che gestisce l’elenco.

  3. Laravel prepara la vista.

    Verifico input e permessi, filtro i dati e compongo i risultati con Blade.

  4. Si aggiorna l’elenco.

    HTMX sostituisce l’area dei risultati con l’HTML ricevuto.

Come verifico il filtro con PHPUnit.

Preparo richieste con stati diversi e simulo la chiamata alla rotta Laravel, con il filtro e gli header usati da HTMX. Verifico che l’HTML restituito contenga i risultati pertinenti ed escluda quelli con altri stati.

Controllo anche i permessi: ogni persona deve ricevere solo i dati che può consultare e l’accesso alla rotta deve essere negato a chi non è autorizzato. Con un test nel browser verifico poi che la selezione del filtro aggiorni davvero l’elenco.

Il contesto da dare all’AI

La richiesta, la rotta e il codice che filtra i dati, la vista interessata, le regole di accesso e i test del flusso. Aggiungo altro codice quando le dipendenze lo richiedono.

Una figura tecnica esperta
per il tuo progetto Laravel.

Raccontami applicazione e stack, il supporto necessario e l’impegno indicativo. Nel primo confronto definiamo perimetro, responsabilità e disponibilità.

Scrivimi per una collaborazione