Come eseguire correttamente il Vibe Coding? Questa è una masterclass del responsabile degli agenti di programmazione di Anthropic.

come eseguire correttamente la codifica delle vibrazioni

Se ti rompi una mano e devi tenere il gesso per due mesi, ma il lavoro non può fermarsi, cosa dovrebbe fare un programmatore? Erik Schluntz, ricercatore presso Antropico e coautore di Formare agenti efficaci, fornisce una risposta: affidare tutto a Claude.

Oggi, mentre l’intelligenza artificiale sta rivoluzionando radicalmente le regole del settore del software, Vibe Coding è diventata una scelta imprescindibile per le aziende che vogliono aumentare la propria produttività.

Qualche mese fa, Schluntz ha raccontato la sua insolita esperienza di essere stato costretto a svolgere un “lavoro completamente automatizzato” e ha affrontato un argomento piuttosto controverso: come praticare in modo responsabile il Vibe Coding negli ambienti di produzione.

Questo intervento è ricco di spunti pratici e negli ultimi giorni è tornato a fare il giro del web su X. Un utente di nome Movez lo ha addirittura definito migliore di 100 corsi a pagamento.

Nello spirito di Vibe Coding, abbiamo utilizzato l’intelligenza artificiale anche per organizzare l’intervento di Schluntz.

Se desiderate guardare questa eccellente conferenza, puoi cliccare qui per accedervi.

commento su Vibe Coding

Che cos’è il Vibe Coding

Che cos’è il Vibe Coding

Molti equiparano l’uso intensivo di strumenti di intelligenza artificiale come Cursor o Copilot per la generazione di codice al “Vibe Coding”. Ma non è esatto. Finché lo sviluppatore mantiene un stretto ciclo di feedback con il modello — rivedendo e modificando il codice riga per riga — non si può parlare di vero e proprio “vibe”.”

Andre Karpathy ha fornito una definizione più precisa: “immergersi completamente nell’atmosfera, abbracciare la crescita esponenziale della tecnologia e dimenticare del tutto che il codice esista”.”

Questo stile di lavoro riduce notevolmente le barriere allo sviluppo, consentendo anche a chi non ha una formazione ingegneristica di realizzare in autonomia applicazioni complete. Tuttavia, in passato, i casi di successo di questo approccio erano per lo più limitati a giochi personali o progetti a basso rischio. Quando i non professionisti applicano questo approccio in contesti di produzione reali, spesso si verificano situazioni fuori controllo, come l’esaurimento delle quote API, l’aggiramento della convalida degli abbonamenti o la modifica arbitraria dei database.

Perché la programmazione intuitiva è importante: la logica della crescita esponenziale

Se gli ambienti aziendali ad alto rischio presentano fattori incontrollabili, perché dovremmo comunque portare avanti questa tecnologia? La forza trainante principale risiede nella “crescita esponenziale” delle capacità dell’IA.

Attualmente, la durata delle attività che l’IA è in grado di gestire in modo autonomo raddoppia all’incirca ogni 7 mesi. Oggi l’IA è in grado di portare a termine in modo affidabile attività di programmazione che richiedono circa 1 ora, e gli sviluppatori hanno ancora le energie per rivederle riga per riga. Ma entro il prossimo anno o quello successivo, quando l’IA sarà in grado di generare in un’unica operazione codice equivalente a 1 giorno o addirittura a 1 settimana di lavoro umano, se continueremo a insistere sulla tradizionale revisione e modifica sincrona, gli ingegneri umani diventeranno inevitabilmente il collo di bottiglia nell’esplosione della potenza di calcolo.

Il numero di attività di codifica Vibe che gli ALS sono in grado di svolgere raddoppia ogni 7 mesi

Possiamo fare riferimento alla storia dei compilatori. I primi sviluppatori non si fidavano dei compilatori e continuavano a controllare il codice assembly sottostante. Con l’aumentare delle dimensioni dei sistemi, gli sviluppatori hanno dovuto imparare a fidarsi delle astrazioni di livello superiore. Guardando al futuro, l’intero settore dell’ingegneria del software deve riflettere in anticipo su come accettare in modo sicuro e responsabile, negli ambienti di produzione, i sistemi generati direttamente da modelli di grandi dimensioni.

Come applicare il Vibe Coding in produzione

Il principio fondamentale della pratica del Vibe Coding in ambiente di produzione è: dimenticare l'esistenza del codice, ma concentrarsi sempre sull'esistenza del prodotto.

Nella gestione aziendale moderna, i CTO si affidano ai test di accettazione per gestire gli esperti tecnici, i product manager convalidano le funzionalità provando il prodotto e gli amministratori delegati verificano i modelli finanziari attraverso una selezione di dati chiave. Nessuno di loro si addentra nei dettagli esecutivi di livello più basso. Anche gli ingegneri del software devono definire livelli di astrazione simili che possano essere verificati senza leggere il codice sottostante.

La chiave sta nel trovare livelli di astrazione che sia possibile verificare.

Tuttavia, l'attuale programmazione nel campo dell'intelligenza artificiale presenta un ostacolo tecnico non da poco: il debito tecnico. Al momento, a parte la lettura dell'intero codice sorgente, è estremamente difficile misurare o verificare il debito tecnico attraverso metodi sistematici.

Sulla base di ciò, Erik Schluntz propone di concentrarsi sui “nodi foglia” nel codice. Questi nodi si riferiscono a funzioni terminali o componenti ausiliari da cui nessun altro modulo dipende. In queste aree, anche se si dovesse accumulare un po’ di debito tecnico, ciò è accettabile, poiché cambiano raramente e non ostacolano la creazione di moduli futuri.

Al contrario, per quanto riguarda il nucleo centrale e l’architettura di base del sistema, gli ingegneri devono ancora comprendere a fondo e garantire rigorosamente la scalabilità.

Vale la pena notare che, con il miglioramento delle capacità dei modelli, il livello di codice che possiamo affidare all’IA si sta estendendo verso il basso. In recenti test interni condotti da Anthropic, la percentuale di successo dell’IA nella generazione di architetture di alta qualità è in aumento e questo limite sta cambiando dinamicamente.

La competenza fondamentale del “Vibe Coding”: pensare come un product manager

Affinché l'intelligenza artificiale sia in grado di generare codice ingegneristico di alta qualità, gli sviluppatori devono cambiare mentalità e considerarsi come i product manager di Claude. Non chiederti cosa Claude possa fare per te; chiediti cosa tu possa fare per Claude.

Quando si trovano ad affrontare compiti di sviluppo complessi, gli sviluppatori devono guidare l’IA come se stessero inserendo un nuovo dipendente nel suo primo giorno di lavoro. Limitarsi a dare un’istruzione del tipo “implementa questa funzionalità” è destinato a fallire. Gli sviluppatori devono fornire indicazioni dettagliate su come orientarsi nel codice e definire chiaramente i requisiti e i vincoli.

Prima di lasciare che Claude scriva effettivamente il codice, Schluntz dedica solitamente dai 15 ai 20 minuti a interagire con esso. Ciò comporta lasciare che l’IA esplori il codice sorgente, individui i file pertinenti e elabori insieme un piano di esecuzione chiaro. Successivamente, tutto questo contesto ben organizzato e le specifiche vengono riuniti in un unico prompt prima dell’esecuzione.

Grazie a questo processo, il tasso di successo del modello aumenta in modo esponenziale.

Caso reale: 22.000 righe di codice integrate in un solo giorno

Schluntz ha rivelato un caso estremo tratto dall'esperienza concreta all'interno di Anthropic. Il suo team è riuscito a integrare con successo una modifica al codice di ben 22.000 righe in un codice di apprendimento per rinforzo in produzione, la maggior parte del quale era stato scritto da Claude.

Per portare a termine questa fusione in modo responsabile, il team ha adottato quattro strategie:

  • Una pianificazione approfondita nella fase iniziale dal punto di vista del product manager
  • Limitare rigorosamente le modifiche ai nodi foglia
  • Revisione manuale della logica di base del sistema
  • Progettazione di punti di controllo verificabili e test di stress

Grazie a questo approccio, ciò che in origine richiedeva due settimane di lavoro da parte degli ingegneri è stato ridotto a un solo giorno.

Quando i costi di sviluppo diminuiscono drasticamente, gli ingegneri acquisiscono la capacità di attuare rifattorizzazioni su larga scala e iterazioni delle funzionalità che in precedenza erano impossibili a causa dei limiti delle risorse.

Tecniche avanzate di codifica delle vibrazioni e domande e risposte pratiche

Schluntz ha inoltre condiviso spunti pratici su diversi aspetti, dai metodi di apprendimento all'uso degli strumenti.

Per quanto riguarda l'apprendimento: i programmatori potrebbero non dover più confrontarsi con i dettagli di basso livello, ma l'IA accelera notevolmente la velocità di apprendimento. Gli sviluppatori possono chiedere all'IA di spiegare librerie e scelte che non conoscono, trasformandola in un "pair programmer" sempre a disposizione.

Sull’accumulo di esperienza: l’intelligenza artificiale consente un processo di prova ed errore più rapido. Decisioni che un tempo richiedevano anni per essere convalidate possono ora essere testate nel giro di pochi mesi, consentendo agli ingegneri di acquisire un’esperienza molte volte superiore nello stesso lasso di tempo.

A proposito delle istruzioni: il livello di dettaglio dipende da quanto ti interessa l'implementazione. Tuttavia, imporre vincoli eccessivi al modello spesso ne riduce le prestazioni. Considera la cosa come se stessi comunicando con un ingegnere alle prime armi, piuttosto che applicare modelli rigidi.

Per quanto riguarda la sicurezza: Vibe Coding è sicuro solo se utilizzato sotto la guida di qualcuno che ne comprenda i rischi. I problemi sorgono solitamente quando utenti senza competenze tecniche implementano i sistemi senza la dovuta consapevolezza.

Per quanto riguarda la progettazione dei prodotti: gli strumenti del futuro potrebbero offrire sistemi “dimostrabilmente corretti”, in cui la logica sensibile del backend è protetta e gli utenti possono sperimentare in tutta sicurezza in ambienti controllati.

Per quanto riguarda i test: lo sviluppo guidato dai test è estremamente utile. Anziché ricorrere a test complessi, è preferibile effettuare semplici test end-to-end: un percorso di successo e due casi di errore. Test minimi migliorano l’affidabilità e la leggibilità.

Per quanto riguarda il flusso di lavoro: è prassi comune combinare Claude Code e Cursor. Claude si occupa della generazione, mentre gli sviluppatori revisionano o perfezionano i risultati. Il contesto dovrebbe essere periodicamente sintetizzato per evitare derive.

Su codici di cui non si ha familiarità: prima di implementare nuove funzionalità, utilizzare l’intelligenza artificiale per esplorare il sistema — individuare i moduli chiave, identificare implementazioni simili e costruire un modello mentale prima di procedere all’esecuzione.

Considerazioni finali: cosa significa davvero “abbracciare la crescita esponenziale”

L'essenza della crescita esponenziale non sta solo nel miglioramento continuo, ma nel fatto che tale miglioramento avvenga a un ritmo molto più rapido di quanto ci aspettiamo.

Proprio come una curva che parte lentamente per poi salire alle stelle all’improvviso, le capacità dell’intelligenza artificiale potrebbero non limitarsi a raddoppiare, ma aumentare di diversi ordini di grandezza.

Se si ripercorre la storia dell'informatica, dai kilobyte di memoria degli anni '90 ai terabyte di oggi, il miglioramento non è di 2 volte, ma di milioni di volte.

Quindi la vera domanda non è “cosa succede se i modelli diventano due volte più efficaci”, ma “cosa succede se diventano un milione di volte più potenti?”

Questo è il vero significato del “Vibe Coding” — ed è per questo che non può essere ignorato.

Torna in alto