Come l’intelligenza artificiale sta trasformando il nostro modo di scrivere codice
Introduzione
Nel panorama tecnologico attuale, l’intelligenza artificiale sta ridefinendo radicalmente il modo in cui sviluppiamo software. In Biomine S.r.l. abbiamo abbracciato questa trasformazione adottando un approccio che la community di sviluppatori ha battezzato “Vibecoding“: una metodologia di sviluppo collaborativo tra programmatore umano e assistente AI.
In questo articolo condividiamo la nostra esperienza diretta con lo sviluppo di CLISpoofing, un’applicazione enterprise realizzata interamente con questo nuovo paradigma.
Il Contesto: La Lotta allo Spoofing Telefonico in Italia
Prima di parlare dell’esperienza di sviluppo, è fondamentale capire il contesto in cui nasce CLISpoofing.
Lo spoofing del CLI (Calling Line Identification) è una pratica fraudolenta in cui un chiamante maschera il proprio numero telefonico reale, facendo apparire sul display del destinatario un numero diverso, spesso quello di banche, istituzioni o aziende legittime. Questa tecnica viene utilizzata per truffe, phishing telefonico e altre attività illecite che ogni anno causano danni significativi a cittadini e imprese.
Per contrastare questo fenomeno, AGCOM (Autorità per le Garanzie nelle Comunicazioni) ha promosso un’iniziativa che coinvolge tutti i principali operatori telefonici italiani: TIM, Vodafone, WindTre, Fastweb, Iliad, PostePay, e molti altri. L’obiettivo è creare un sistema di verifica in tempo reale che permetta di validare l’autenticità del numero chiamante prima che la chiamata raggiunga il destinatario.
Per realizzare questo obiettivo è stata costruita una rete di interconnessione tra tutti gli operatori coinvolti, basata su API REST standardizzate. Ogni operatore espone endpoint di verifica e interroga gli altri operatori per validare che il numero chiamante appartenga effettivamente alla rete di origine dichiarata.
CLISpoofing è il sistema che Biomine S.r.l. ha sviluppato per gestire questa infrastruttura: un gateway che orchestra le verifiche tra operatori, gestisce la logica di routing, implementa meccanismi di resilienza (circuit breaker, load balancing) e raccoglie metriche dettagliate per il monitoraggio dell’intero ecosistema.
Cos’è il Vibecoding?
Il termine “Vibecoding” descrive un approccio allo sviluppo software dove il programmatore lavora in simbiosi con un assistente AI, comunicando le proprie intenzioni in linguaggio naturale e collaborando iterativamente per tradurle in codice funzionante.
Non si tratta di delegare completamente la scrittura del codice all’AI, né di usarla come semplice autocompletamento. È piuttosto una conversazione continua dove:
- Il developer mantiene la visione architetturale e le decisioni strategiche
- L’AI contribuisce con implementazioni, suggerimenti e pattern
- Entrambi iterano rapidamente su problemi e soluzioni
Gli strumenti del nostro stack
Per implementare questa metodologia abbiamo utilizzato:
- Claude Code CLI: l’interfaccia a riga di comando di Anthropic per interagire con Claude direttamente nel terminale — lo strumento principale del nostro workflow
- Visual Studio Code con Remote SSH: per lavorare su un server Linux dedicato allo sviluppo
Inizialmente avevamo sperimentato anche Roo Code (un’estensione VSCode), ma abbiamo rapidamente scoperto che lavorare direttamente con Claude Code CLI offriva maggiore controllo e flessibilità. La semplicità della riga di comando, unita alla potenza del modello, si è rivelata la combinazione vincente.
Questa configurazione ci ha permesso di mantenere tutti i progetti su un server Ubuntu 22.04, sfruttando la potenza di Claude direttamente nell’ambiente di sviluppo.
Il Progetto CLISpoofing
Dal punto di vista tecnico, CLISpoofing è un sistema enterprise complesso che comprende:
- Backend Node.js per la logica di business, le API REST e l’orchestrazione delle verifiche tra operatori
- Frontend React con TypeScript per l’interfaccia di gestione e configurazione
- Sistema RTG (Real-Time Gateway) per la gestione degli endpoint di ogni operatore, con load balancing e circuit breaker
- InfluxDB per la raccolta di metriche e telemetria ad alta frequenza
- Dashboard Grafana per il monitoring in tempo reale delle performance e dello stato di salute del sistema
L’applicazione deve gestire migliaia di verifiche al secondo, garantendo tempi di risposta nell’ordine dei millisecondi e alta affidabilità. Ogni operatore ha configurazioni diverse, endpoint multipli per ridondanza, e policy specifiche da rispettare.
L’Esperienza di Sviluppo
Fase 1: Architettura e Setup
La prima sfida è stata definire l’architettura. Qui il Vibecoding ha mostrato subito il suo valore: abbiamo potuto discutere le opzioni architetturali con l’AI, esplorando pro e contro di diverse soluzioni prima di scrivere una singola riga di codice.
L’AI non solo suggeriva pattern, ma li contestualizzava rispetto alle nostre esigenze specifiche, considerando fattori come la scalabilità, la manutenibilità e l’integrazione con sistemi esistenti.
Fase 2: Sviluppo Iterativo
Il cuore del Vibecoding è l’iterazione rapida. Un tipico ciclo di sviluppo funzionava così:
- Descrizione dell’obiettivo in linguaggio naturale
- Proposta di implementazione da parte dell’AI
- Review e feedback sul codice generato
- Raffinamento basato sui test e sul comportamento reale
- Documentazione automatica del lavoro svolto
Questo approccio si è rivelato particolarmente efficace per:
- Query Flux per InfluxDB: la sintassi di Flux può essere ostica; l’AI ha accelerato enormemente la scrittura di query complesse per le dashboard
- Componenti React: dalla struttura base agli hook personalizzati, il codice frontend è stato sviluppato con iterazioni molto veloci
- API REST: definizione degli endpoint, validazione, gestione errori
Fase 3: Testing e Debug
Un aspetto sottovalutato del Vibecoding è il supporto al debugging. Quando un comportamento non era quello atteso, potevamo descrivere il problema e ottenere:
- Ipotesi sulle possibili cause
- Codice di test per isolare il problema
- Soluzioni proposte con spiegazione del razionale
Abbiamo anche integrato Playwright per test E2E automatizzati, permettendo all’AI di verificare autonomamente se le modifiche risolvevano i problemi riscontrati.
Fase 4: Documentazione
La User Guide dell’applicazione è stata creata direttamente in Markdown, integrata nel frontend React per una consultazione contestuale. L’AI ha supportato sia la struttura del contenuto che l’implementazione del componente di visualizzazione.
Vantaggi Riscontrati
Velocità di Sviluppo
Funzionalità che avrebbero richiesto giorni sono state completate in ore. Non perché l’AI scriva codice più velocemente, ma perché riduce drasticamente il tempo di “context switching” e ricerca.
Qualità del Codice
L’AI funge da “secondo paio di occhi” costante, suggerendo best practice, identificando potenziali problemi, e mantenendo coerenza stilistica nel codebase.
Documentazione Integrata
Il codice nasce già documentato. Le conversazioni con l’AI producono naturalmente spiegazioni che diventano commenti, README, e documentazione tecnica.
Curva di Apprendimento
Per tecnologie meno familiari (come Flux o specifici pattern React), l’AI ha funzionato come mentore on-demand, accelerando l’apprendimento senza sacrificare la comprensione.
Sfide e Considerazioni
Gestione del Contesto
Le sessioni di Vibecoding possono consumare molti token. Abbiamo imparato a strutturare le conversazioni in modo efficiente, usando file CLAUDE.md per mantenere il contesto tra sessioni.
Verifica Costante
Il codice generato dall’AI richiede sempre review. Non tutto ciò che viene proposto è ottimale, e la responsabilità finale resta del developer umano.
Curva di Apprendimento… del Prompting
Comunicare efficacemente con l’AI è una skill che si sviluppa. I primi giorni sono stati meno produttivi di quelli successivi, man mano che affinávamo il modo di formulare le richieste.
Conclusioni
L’esperienza con CLISpoofing ci ha convinto che il Vibecoding non è una moda passeggera, ma un cambiamento di paradigma destinato a restare. Non sostituisce il developer, ma ne amplifica le capacità in modo significativo.
Per chi si avvicina a questo approccio, il nostro consiglio è:
- Iniziare gradualmente: non tutto il codice deve essere “vibecoded”
- Mantenere il controllo: l’AI è un collaboratore, non un sostituto
- Investire nel setup: una buona configurazione dell’ambiente paga dividendi enormi
- Documentare il processo: tenere traccia delle sessioni aiuta a migliorare nel tempo
Il futuro dello sviluppo software è collaborativo, e noi siamo entusiasti di essere parte di questa evoluzione.
Biomine S.r.l. è una società specializzata in infrastrutture tecnologiche, con competenze che spaziano dal mining di criptovalute alla consulenza su sistemi AI. Per maggiori informazioni sui nostri servizi, contattaci.

