Negli ultimi due anni, io e il mio team di Work & Co abbiamo testato e integrato gradualmente strumenti di codifica AI come Copilot, Cursor, Claude e ChatGPT per aiutarci a fornire esperienze web utilizzate dalle masse. Certo, dopo un po' di scetticismo iniziale e qualche momento ahah, diversi strumenti di intelligenza artificiale sono entrati nel mio uso quotidiano. Nel corso del tempo, l'elenco delle applicazioni in cui abbiamo ritenuto che avesse senso lasciare che l'intelligenza artificiale prendesse il sopravvento ha iniziato a crescere, quindi ho deciso di condividere alcuni casi d'uso pratici per gli strumenti di intelligenza artificiale per quello che chiamo lo "sviluppatore responsabile". Cosa intendo per sviluppatore responsabile? Dobbiamo assicurarci di fornire un codice di qualità come previsto dai nostri stakeholder e clienti. I nostri contributi (ovvero le pull request) non devono diventare un peso per i nostri colleghi che dovranno rivedere e testare il nostro lavoro. Inoltre, nel caso in cui lavori per un'azienda: gli strumenti che utilizziamo devono essere approvati dal nostro datore di lavoro. Aspetti sensibili come la sicurezza e la privacy devono essere gestiti correttamente: non incollare segreti, dati dei clienti (PII) o codice proprietario negli strumenti senza l'approvazione della policy. Trattalo come un codice inviato da uno sconosciuto su Internet. Testare e verificare sempre. Nota: questo articolo presuppone una familiarità di base con gli strumenti di codifica AI come Copilot all'interno di VSCode o Cursor. Se tutto ciò ti sembra totalmente nuovo e non familiare, i tutorial video di Github Copilot possono essere un fantastico punto di partenza per te.
Applicazioni utili degli strumenti di codifica AI Nota: i seguenti esempi si concentreranno principalmente sul lavoro in applicazioni web basate su JavaScript come React, Vue, Svelte o Angular. Comprendere una base di codice sconosciuta Non è raro lavorare su codebase consolidate e l’adesione a una codebase legacy di grandi dimensioni può essere intimidatoria. Apri semplicemente il tuo progetto e il tuo agente AI (nel mio caso, Copilot Chat in VSCode) e inizia a fare domande proprio come faresti con un collega. In generale, mi piace parlare con qualsiasi agente dell'intelligenza artificiale proprio come farei con un altro essere umano. Ecco un esempio più raffinato: "Dammi una panoramica dell'architettura di alto livello: punti di ingresso, routing, autenticazione, livello dati, strumenti di creazione. Quindi elenca 5 file da leggere in ordine. Tratta le spiegazioni come ipotesi e conferma passando ai file di riferimento."
Puoi continuare a porre domande di follow-up come "Come funziona il routing in dettaglio?" o "Parlami attraverso il processo e i metodi di autenticazione" e ti condurrà a indicazioni utili per far luce nell'oscurità di una base di codice sconosciuta. Valutazione delle modifiche importanti durante l'aggiornamento delle dipendenze L'aggiornamento dei pacchetti npm, soprattutto quando comportano modifiche sostanziali, può essere un lavoro noioso e dispendioso in termini di tempo e richiedere il debug di una discreta quantità di regressioni. Recentemente ho dovuto aggiornare la libreria di visualizzazione dei dati plotly.js a una versione principale dalla versione 2 alla 3 e, di conseguenza, l'etichettatura degli assi in alcuni grafici ha smesso di funzionare. Ho continuato a chiedere a ChatGPT: "Ho aggiornato il mio progetto Angular che utilizza Plotly. Ho aggiornato plotly.js - pacchetto dist dalla versione 2.35.2 alla 3.1.0 - e ora le etichette sugli assi xey sono scomparse. Cosa è successo?"
L'agente è tornato prontamente con una soluzione (vedi tu stesso di seguito). Nota: ho comunque verificato la spiegazione rispetto alla guida ufficiale alla migrazione prima di inviare la correzione.
Replica sicura dei refactoring tra file Le basi di codice in crescita svelano sicuramente opportunità per il consolidamento del codice. Ad esempio, noti la duplicazione del codice tra file che possono essere estratti in una singola funzione o componente. Di conseguenza, decidi di creare un componente condiviso che può essere incluso ed eseguire il refactoring in un unico file. Ora, invece di eseguire manualmente tali modifiche ai file rimanenti, chiedi al tuo agente di implementare il refactoring per te. Gli agenti ti consentono di selezionare più file come contesto. Una volta terminato il refactoring per un file, posso aggiungere sia i file refactoring che quelli non modificati nel contesto e chiedere all'agente di implementare le modifiche ad altri file in questo modo: "Replica le modifiche apportate nel file A anche al file B". Implementazione di funzionalità in tecnologie sconosciute Uno dei miei momenti preferiti con l'utilizzo degli strumenti di codifica AI è stato quando mi ha aiutato a creare un'animazione sfumata animata piuttosto complessa in GLSL, un linguaggio con cui non avevo molta familiarità. In un progetto recente, i nostri designer hanno ideato un gradiente animato come stato di caricamento su un oggetto 3D. Mi è piaciuto molto il concetto e volevo offrire qualcosa di unico ed emozionante ai nostri clienti. ILproblema: avevo solo due giorni per implementarlo e GLSL ha una curva di apprendimento piuttosto ripida. Ancora una volta, uno strumento AI (in questo caso, ChatGPT) mi è tornato utile e ho iniziato semplicemente a chiedergli di creare per me un file HTML autonomo che eseguisse il rendering di una tela e di un gradiente di colore animato molto semplice. Passo dopo passo, ho chiesto all'intelligenza artificiale di aggiungere più finezza fino a quando non sono arrivato a un risultato decente in modo da poter iniziare a integrare lo shader nella mia codebase effettiva. Il risultato finale: i nostri clienti sono stati super soddisfatti e abbiamo fornito una funzionalità complessa in un breve lasso di tempo grazie all'intelligenza artificiale. Prove di scrittura Nella mia esperienza, raramente c'è abbastanza tempo sui progetti per scrivere e mantenere continuamente una suite adeguata di test unitari e di integrazione e, oltre a ciò, a molti sviluppatori non piace molto il compito di scrivere test. Chiedere al tuo aiutante AI di impostare e scrivere test per te è del tutto possibile e può essere fatto in un breve lasso di tempo. Naturalmente, tu, come sviluppatore, dovresti comunque assicurarti che i tuoi test diano effettivamente un'occhiata alle parti critiche della tua applicazione e seguano principi di test sensati, ma puoi "esternalizzare" la scrittura dei test al nostro aiutante AI. Richiesta di esempio: "Scrivi unit test per questa funzione utilizzando Jest. Copri il percorso felice, i casi limite e le modalità di fallimento. Spiega perché esiste ogni test. "
Puoi anche trasmettere le migliori pratiche di test del guru dei test Kent C. Dodds come linee guida al tuo agente, come di seguito:
Utensileria interna In modo un po' simile all'esempio dello shader menzionato in precedenza, recentemente mi è stato assegnato il compito di analizzare la duplicazione del codice in una codebase e confrontare prima e dopo un refactoring. Certamente non è un compito banale se non vuoi intraprendere la lunga strada del confronto manuale dei file. Con l'aiuto di Copilot, ho creato uno script che analizzava per me la duplicazione del codice, organizzava e ordinava l'output in una tabella e lo esportava in Excel. Poi ho fatto un ulteriore passo avanti. Una volta terminato il refactoring del codice, ho chiesto all'agente di prendere il mio foglio Excel esistente come base di riferimento, aggiungere lo stato corrente di duplicazione in colonne separate e calcolare il delta. Aggiornamento del codice scritto molto tempo fa Di recente, un mio vecchio cliente mi ha contattato perché, con il passare del tempo, alcune funzionalità non funzionavano più correttamente sul suo sito web. Il problema: il sito Web è stato creato quasi dieci anni fa e JavaScript e SCSS utilizzavano strumenti di compilazione piuttosto vecchi come requireJS e la configurazione richiedeva una versione precedente di Node.js che non funzionava nemmeno sul mio MacBook 2025. L'aggiornamento manuale dell'intero processo di compilazione mi avrebbe richiesto giorni, quindi ho deciso di chiedere all'agente AI: "Puoi aggiornare il processo di compilazione JS e SCSS a uno stack 2025 snello come Vite?" Sicuramente è stato così e, dopo circa un'ora di perfezionamento con l'agente, ho fatto passare la mia build SCSS e JS a Vite e ho potuto concentrarmi sulla correzione effettiva dei bug. Assicurati solo di convalidare correttamente l'output e i file compilati quando esegui modifiche integrali al processo di compilazione. Riepilogo e stesura Ti piacerebbe riassumere tutte le modifiche recenti al codice in una frase per un messaggio di commit o avere un lungo elenco di commit e vorresti riassumerli in tre punti elenco? Nessun problema, lascia che se ne occupi l'intelligenza artificiale, ma assicurati di correggerlo. Un esempio di suggerimento è semplice come inviare un messaggio a un altro essere umano: "Per favore, riassumi i miei recenti cambiamenti in elenchi puntati concisi". Il mio consiglio qui sarebbe di utilizzare GPT per scrivere con cautela e, come con il codice, controllare l'output prima di inviare o inviare. Raccomandazioni e migliori pratiche Suggestivo Uno dei vantaggi non così evidenti dell’utilizzo dell’intelligenza artificiale è che quanto più specifici e personalizzati sono i tuoi suggerimenti, migliore sarà il risultato. Il processo di richiesta di un agente AI ci costringe a formulare i nostri requisiti nel modo più specifico possibile prima di scrivere e codificare. Questo è il motivo per cui, come regola generale, consiglio vivamente di essere il più specifico possibile con i suggerimenti. Ryan Florence, coautore di Remix, suggerisce un modo semplice ma potente per migliorare questo processo completando il messaggio iniziale con la frase: "Prima di iniziare, hai qualche domanda per me?"
A questo punto, l’intelligenza artificiale di solito ritorna con domande utili in cui puoi chiarire il tuo intento specifico, guidando l’agente a fornirti un approccio più personalizzato per il tuo compito.
Usa il controllo della versione e lavora in blocchi digeribili Usare il controllo della versione come git non solo è utile quando si collabora in squadra su una singola base di codice, ma anche per fornirti comecontributore individuale con punti stabili a cui tornare in caso di emergenza. A causa della sua natura non deterministica, l’intelligenza artificiale a volte può diventare canaglia e apportare modifiche che semplicemente non sono utili per ciò che stai cercando di ottenere e alla fine rompere le cose in modo irreparabile. Suddividere il tuo lavoro in più commit ti aiuterà a creare punti stabili a cui puoi tornare nel caso in cui le cose vadano storte. E anche i tuoi compagni di squadra ti ringrazieranno, poiché avranno più tempo a rivedere il tuo codice quando sarà suddiviso in blocchi semanticamente ben strutturati. Rivedi attentamente Questa è più una best practice generale, ma a mio avviso diventa ancora più importante quando si utilizzano strumenti di intelligenza artificiale per il lavoro di sviluppo: sii il primo revisore critico del tuo codice. Assicurati di dedicare del tempo a rivedere le modifiche riga per riga, proprio come faresti con il codice di qualcun altro, e invia il tuo lavoro solo dopo aver superato la tua auto-revisione. "Due cose sono entrambe vere per me in questo momento: gli agenti IA sono straordinari e danno un enorme aumento di produttività. Sono anche enormi macchine da sballo se spegni il cervello e lasci andare completamente. "— Armin Ronacher nel suo post sul blog Agent Psychosis: Are We Going Insane?
Conclusione e pensieri critici A mio parere, gli strumenti di codifica basati sull’intelligenza artificiale possono migliorare la nostra produttività quotidiana come sviluppatori e liberare la capacità mentale per una maggiore pianificazione e un pensiero di alto livello. Ci costringono ad articolare il risultato desiderato con dettagli meticolosi. Qualsiasi intelligenza artificiale può, a volte, avere allucinazioni, il che significa sostanzialmente che ha un tono fiducioso. Quindi assicurati di controllare e testare, soprattutto in caso di dubbi. L'intelligenza artificiale non è una soluzione miracolosa e, credo, l'eccellenza e la capacità di risolvere i problemi come sviluppatore non passeranno mai di moda. Per gli sviluppatori che hanno appena iniziato la loro carriera, questi strumenti possono essere una forte tentazione per svolgere la maggior parte del lavoro per loro. Ciò che potrebbe perdersi qui è il lavoro spesso faticoso e doloroso attraverso bug e problemi difficili da eseguire il debug e risolvere, ovvero "il grind". Anche Lee Robinson di Cursor AI lo mette in dubbio in uno dei suoi post:
Gli strumenti di codifica basati sull’intelligenza artificiale si stanno evolvendo rapidamente e sono entusiasta di ciò che verrà dopo. Spero che tu abbia trovato utile questo articolo e i suoi suggerimenti e che tu sia entusiasta di provarne alcuni di persona.