Tutte le guide
Cursor AI: Guida per Programmare quando non sei capace
Guida

Cursor AI: Guida per Programmare quando non sei capace

Ti sei mai chiesto/a come sarebbe poter scrivere codice alla velocità del pensiero?

P

Pietro Bonomo

Pubblicato il 9 gennaio 2025

Quante volte ti è capitato di avere belle idee, anche semplici, per presto ricordarti che viviamo in un matrix mediatico digitale costruito da linee di codice, mentre tu sei formato/a su excel, intuizioni, carta e penna etc. Insomma Macchine Vs Umani.

A quel punto avrai bisogno di un programmatore. Esistono due tipi di programmatori: quello bravo che lavora alla Apple o quello di m... che si arrangia. Poco nel mezzo.

Dato che la tua idea non necessita di un programmatore Apple level perché costerebbe troppo realizzarla e il programmatore di m... ti manderebbe al manicomio trasformando la tua idea da rivoluzione a tragedia...

Allora non ti rimane che somatizzare e parlarne col tuo terapeuta. Ecco, questo fino a qualche mese fa o almeno fino a prima di leggere questa guida. Ora grazie a tre fattori che hanno e stanno cambiando il modo in cui usiamo l'AI e lavoriamo - modelli specializzati in codice, agenti e IDE per la programmazione - possiamo diventare dei "programmatori" senza sapere nulla di codice e i programmatori di m... diventare "good enough" per realizzare le nostre idee in modo decente in tempi ragionevoli

Che i modelli possono scrivere codice lo sappiamo già, ora immagina di avere un copilota AI che non solo completa o scrive le tue righe di codice, ma comprende il contesto del tuo progetto e ti suggerisce soluzioni innovative. Questa non è fantascienza, ma la realtà offerta dai nuovi agenti e piattaforme per la programmazione. Ce ne sono tanti in giro più o meno di qualità. Oggi parliamo di Cursor.

Con oltre 40.000 utenti attivi, tra cui numerosi programmatori di OpenAI, Cursor promette di automatizzare fino al 95% del processo di scrittura del codice, liberando i programmatori per concentrarsi sugli aspetti più creativi e strategici dello sviluppo software. Ma come funziona realmente questa tecnologia e quali implicazioni ha per il futuro della programmazione?

In questa guida esploreremo Cursor. Dalle sue origini come fork di Visual Studio Code alla sua evoluzione in un potente strumento di collaborazione e automazione, fino al mio personale metodo per creare app anche se non sai programmare.

Che tu sia un programmatore in erba o un marketer interessato alle ultime innovazioni tecnologiche, questo articolo ti fornirà insights preziosi su come iniziare a sviluppare software e rendere la tua idea realtà e testarla velocemente.

Concetti chiave:

  • AI Democratizza il Coding: modelli, agenti e IDE come Cursor rendono la programmazione accessibile ai non esperti.
  • Cursor Highlights: IDE AI-driven basato su VSCode, automatizza il 95% del codice con modalità Freemium.
  • Vantaggi per Marketer: automazione marketing, gestione API, creazione dashboard, piccoli sviluppi ad alto impatto.
  • Funzionalità Principali: regole .Cursorrules, Composer per prompt-driven coding, Notepad per contesto, integrazione Docs, Git AI-powered.
  • Limiti AI: codice non ottimizzato, riduzione competenze umane, potenziali bias e vulnerabilità.

Nel primo paragrafo, esamineremo in dettaglio l'architettura di Cursor, un po' di storia e come la sua integrazione profonda con l'intelligenza artificiale sta ridefinendo il concetto stesso di IDE.

Le origini

Con oltre 40.000 sviluppatori attivi, Cursor rappresenta la materializzazione di una visione audace: automatizzare fino al 95% del processo di scrittura del codice, trasformando radicalmente il modo in cui i programmatori lavorano.

Michael Truell, CEO di Anysphere, ha plasmato Cursor con una missione chiara:

"Vogliamo democratizzare lo sviluppo software, rendendo la programmazione più accessibile e efficiente attraverso l'automazione intelligente."

Questa visione ha catturato l'attenzione di figure autorevoli come Andrej Karpathy, che ha definito Cursor

"un punto di svolta per la produttività degli sviluppatori, capace di abbattere le barriere tradizionali della programmazione."

L'architettura di Cursor si distingue per la sua integrazione profonda con l'intelligenza artificiale, che va oltre il semplice completamento del codice. L'IDE opera come un vero e proprio copilota dello sviluppatore, offrendo suggerimenti contestuali, automatizzando le attività ripetitive e facilitando il debug attraverso analisi predittive avanzate.

⚠️
ops... stop un momento. Lo sai cosa significa IDE? Un IDE è essenzialmente la "cassetta degli attrezzi digitale" dello sviluppatore: un ambiente software che combina editor di codice, debugger, compilatore e altri strumenti essenziali per la programmazione.

La piattaforma supporta la collaborazione in tempo reale, permettendo ai team di lavorare in sincronia indipendentemente dalla loro ubicazione fisica.

La strategia di monetizzazione di Cursor è il classico Freemium. Abbonamenti a pagamento che sbloccano funzionalità avanzate essenziali per team e sviluppatori professionisti, oltre alla versione base che rimane accessibile gratuitamente per garantire che la tecnologia raggiunga un'ampia base di utenti, fedele alla missione di democratizzazione del coding.

L'impatto di Cursor sul settore dello sviluppo software è profondo. Come sottolinea Karpathy:

"L'automazione intelligente non sostituisce il programmatore, ma amplifica le sue capacità, permettendogli di concentrarsi sugli aspetti più creativi e strategici del coding."

Questa filosofia si allinea perfettamente con le tendenze emergenti nell'industria tecnologica, dove l'intelligenza artificiale sta diventando un moltiplicatore di produttività piuttosto che un sostituto del talento umano.

L'architettura aperta di Cursor consente l'integrazione con diversi linguaggi di programmazione e framework, rendendolo uno strumento versatile per progetti di ogni dimensione. La piattaforma si evolve costantemente, incorporando nuove tecnologie AI su feedback degli utenti e per mantenere il suo vantaggio competitivo in un settore in rapida evoluzione.

La visione di Anysphere attraverso Cursor rappresenta un salto quantico nell'evoluzione degli strumenti di sviluppo. Come afferma Truell:

"Non stiamo solo costruendo un altro IDE, stiamo ridefinendo il rapporto tra sviluppatori e codice, creando un futuro dove la programmazione diventa un'esperienza più naturale e accessibile."

Questa rivoluzione silenziosa nella programmazione sta già mostrando risultati tangibili, con team che riportano incrementi di produttività fino al 40% dopo l'adozione di Cursor.

Nel prossimo paragrafo esploreremo come saper usare Cursor o strumenti simili si traduca in casi d'uso concreti per marketer e professionisti del settore, dimostrando come Cursor possa accelerare i flussi di lavoro, abilitare competenze che non possiedi e integrarle con le tue, diventando una vera e propria "sliding door" per i marketer.

Casi d'uso per i marketer moderni

Per un professionista del marketing digitale, Cursor rappresenta uno strumento potente che va ben oltre la semplice scrittura di codice – che non è il nostro fine, perché non siamo programmatori – ma un eccezionale mezzo.

L'editor si rivela particolarmente prezioso per automatizzare e ottimizzare numerose attività di marketing attraverso tre aree principali: sviluppo di estensioni Chrome, gestione delle API, creazione di dashboard analitiche o creatività in massa.

Ad esempio: proviamo a creare un banner animato per Google.

Da una semplice richiesta e una foto...Otteniamo il codice e...
0:00
/0:04

Tempo netto da richiesta a banner: 10 secondi.

Per esempio, è possibile creare estensioni di Chrome per estrarre i commenti degli utenti da una pagina Facebook mentre la si sta navigando, oppure estendere le capacità di alcuni tool. Tempo e immaginazione sono l'unico limite.

La creazione di script per connettersi ad API e per estrarre ed elaborare dati è forse l'ambito in cui Cursor può davvero fare la differenza per un marketer. L'editor facilita l'integrazione tra i tool grazie allo sviluppo di connettori, elementi fondamentali per costruire un ecosistema di marketing interconnesso. Attraverso le API è possibile, inoltre, automatizzare la distribuzione dei contenuti sui social media, sincronizzare i dati tra diverse piattaforme di marketing e implementare strategie di content syndication su larga scala. Per esempio, un marketer può utilizzare Cursor per sviluppare script che automatizzano la pubblicazione di contenuti su più piattaforme social, mantenendo coerenza e timing ottimali.

Per quanto riguarda la creazione di dashboard per report, Cursor può farti diventare un Python Master per la gestione di dati complessi e nella loro visualizzazione. È possibile sviluppare interfacce personalizzate che aggregano dati da diverse fonti (Google Analytics, social media, CRM) in un'unica vista centralizzata. L'editor supporta l'integrazione con librerie di visualizzazione dati e framework frontend, permettendo di creare dashboard interattive e responsive.

Le API possono essere utilizzate anche per le ricerche di mercato, connettendosi ai database delle amministrazioni per estrapolare dati sui concorrenti, come soci, fatturato, profitto e profili di rischio. Oppure possono essere usate per estrapolare i bandi, individuando quelli più adatti alle tue necessità, o per arricchire il tuo CRM.

Come dico sempre: [Follow the Money]

Nel prossimo paragrafo, vediamo le funzionalità principali e qualche trick che ho scoperto.

Tip and Tricks per Sfruttare al Meglio Cursor AI - guida passo-passo

Dopo aver esplorato l'origine, visione di Cursor e opportunità, nel paragrafo precedente, ci immergiamo ora nelle sue funzionalità di base. Voglio raccontarti le varie funzionalità, non nella solita forma di lista, ma come un processo: il mio processo.

Ti parlerò quindi di funzionalità che ho testato personalmente, di metodi che ho affinato in un'infinità di ore di lavoro e studio. Non andrò a fondo nei dettagli: quelli li approfondiremo nella sezione Quick Win, con le micro-guide per un successo veloce e indolore.

Ometterò delle funzionalità, quelle non particolarmente interessanti per un non-programmatore o perché non le conosco abbastanza bene, se sei un programmatore, questa guida non è per te.

Qui si ferma la versione pubblica della guida ed entriamo nella member zone. Se non sei ancora iscritto/a, puoi farlo qui sotto in un minuto.

Nota bene: io non sono un programmatore. Sono anni luce dall'esserlo. Sono disordinato, il cervello va più veloce dei pensieri stessi, che si accavallano. Mi chiamo Pietro e riesco a fare refusi nel mio nome di sole 6 lettere nel 70% dei casi. Però ho una vasta esperienza di UX, Project Management, Martech e processi di marketing, che mi permettono di capire cosa mi serve e come deve essere il risultato finale.

Posso garantirti che, se io ho già sviluppato 25 software da solo per automatizzare il mio lavoro, seguendo queste indicazioni lo puoi fare anche tu.
Grazie a queste app ho costruito le mie best practice. Sarei felice di conoscere le tue.

Se non mi conosci e ti stai chiedendo perché dovresti ascoltarmi, dai uno sguardo a una parte di ciò che ho fatto negli ultimi 25 anni di consulente di Marketing e Marketing Technology.

Come dicevamo, ci troviamo davanti a un IDE che nasce come fork di Visual Studio Code, ereditandone la potenza e arricchendola con funzionalità AI.

Visual Studio Code (VSCode) rappresenta uno degli Integrated Development Environment (IDE) più popolari al mondo.

Come afferma Michael Truell:

"Abbiamo scelto VSCode come base perché offre un'architettura robusta e familiare agli sviluppatori, sulla quale costruire la nostra visione di AI-first development."

Per partire devi scaricarla sul tuo computer. Funziona sia su Mac che su PC.

Il setup di Cursor AI è stato progettato per essere intuitivo e veloce. L'installazione richiede pochi passaggi:

  1. Download del pacchetto appropriato per il proprio sistema operativo.
  2. Installazione guidata con configurazione automatica.
  3. Personalizzazione delle preferenze AI (non te ne curare).

La vera potenza di Cursor è data dalla sinergia tra le funzionalità tradizionali di VSCode e l'AI.

Come spiega un sviluppatore senior di Google che utilizza Cursor:

"È come avere un mentore esperto che guarda costantemente il tuo codice, suggerendo miglioramenti e individuando potenziali problemi prima che si manifestino."

In pratica queste parole come si concretizzano?

Assistenza AI

Chat: gli sviluppatori possono discutere implementazioni con l'assistente, chiedere spiegazioni sul codice esistente usando il comando @codebase o generare nuove soluzioni, il tutto senza lasciare l'ambiente di sviluppo. Ovviamente scegliendo l'interlocutore (o1, claude ecc).

Io la uso per creare il brief da esporre al Composer (vedi qui sotto), per scegliere quale tecnologia usare e per creare le regole per la programmazione (.cursorrule lo vedremo dopo).

In pratica, inizio così:

  1. Creo la cartella sul mio computer che ospiterà la mia App
  2. Apro Cursor
  3. Vado su File>Open Folder e seleziono la cartella appena creata
  4. Uso la combinazione di tasti Ctrl + L su Windows/Linux o Cmd + L su macOS

A questo punto sono davanti al mio "foglio bianco", uso la chat con una normale discussione raccontando la mia idea e chiedendo consigli su come potrebbe essere sviluppata, con quali tecnologie, pro e contro. Dopo che sono soddisfatto della risposta, chiedo di creare un brief per un programmatore senza aggiungere codice.

Marketing Hackers Prompt Library
Date le considerazioni emerse nella discussione in chat, riassumi il progetto in un *brief* estremamente dettagliato seguendo questa struttura: 1. **Scopo del Progetto** - Descrivi chiaramente gli obiettivi principali dell'applicazione o del sistema, includendo il contesto e il problema che intende risolvere. 2. **Tecnologie, Librerie e Framework** - Elenca in modo esaustivo tutte le tecnologie richieste, incluse versioni specifiche, framework, librerie e strumenti da utilizzare. 3. **Requisiti Funzionali** - Indica in dettaglio le funzionalità chiave dell'applicazione, comprese eventuali interazioni specifiche, flussi utente o caratteristiche tecniche richieste. 4. **Requisiti Non Funzionali** - Specifica aspetti come performance, sicurezza, accessibilità, requisiti di scalabilità o vincoli di compatibilità con ambienti specifici. 5. **Architettura e Struttura Attesa** - Descrivi eventuali preferenze per l'organizzazione dei file e delle directory, specificando dove collocare componenti, utilities, tipi, configurazioni, ecc. - Includi eventuali pattern architetturali da seguire (es. MVC, feature-based, modular). 6. **Testing e Validazione** - Indica i livelli di test richiesti (unit test, integrazione, end-to-end), framework preferiti, copertura minima attesa e strategie di validazione. 7. **Deployment e Manutenzione** - Specifica dettagli su pipeline di CI/CD, ambiente di produzione, frequenza di aggiornamento, e strumenti di monitoraggio e logging richiesti. 8. **Altri Dettagli Rilevanti** - Aggiungi qualsiasi altra informazione utile, come vincoli di tempo, budget, preferenze estetiche o altre indicazioni emerse nella discussione. **Nota:** Non includere esempi di codice nel *brief*. Ogni dettaglio fornito contribuirà a migliorare la qualità dello sviluppo. Fornisci il *brief* seguendo questa struttura.

Leggo il brief se ha senso concettualmente passo al prossimo step o continuo a iterate fino a che non ottengo ciò che voglio. Ora è tempo di creare le "regole d'ingaggio".

.Cursorrule: cursorrules è uno strumento che consente di personalizzare il comportamento dell'assistente AI nell'IDE Cursor, adattandolo alle esigenze specifiche del tuo progetto e fornire istruzioni chiare su standard di codifica, tecnologie utilizzate e preferenze di sviluppo. In pratica è come un prompt di sistema che ti segue per tutto il tempo dello sviluppo.

Puoi creare una regola generale per tutti i tuoi progetti e poi delle regole specifiche per ogni progetto

Quali sono i vantaggi di .Cursorrule?

  • L'assistente AI di Cursor utilizzerà le istruzioni per fornire suggerimenti e generare codice in linea con le tue preferenze
  • .cursorrules migliora la coerenza e l'efficienza nello sviluppo, assicurando che l'assistente AI operi in armonia con gli standard e le pratiche del tuo progetto.

Non sono un programmatore. Come faccio a scrivere le regole di qualcosa che non so?

Bella domanda, eh. Andrebbe fatta ai politici ogni tanto. Ma me la sono fatta da solo e mi sono dato una risposta. Ci sono due modi sostanziali: come direbbe Newton, "Standing on the shoulders of giants" (in realtà Newton rubò la metafora a Bernardo di Chartres, vissuto 400 anni prima), cioè assorbiamo sapere dai programmatori, quelli veri. In questo caso, mi sono imbattuto in due raccolte di .Cursorrules durante le mie incursioni notturne su Reddit e altri forum nerdosi.

GitHub - PatrickJS/awesome-cursorrules: 📄 A curated list of awesome .cursorrules files
📄 A curated list of awesome .cursorrules files. Contribute to PatrickJS/awesome-cursorrules development by creating an account on GitHub.
Cursor Directory
Find the best cursor rules for your framework and language

Oppure consultando nuovamente la Chat di Cursor chiedendogli direttamente di scrivere le regole.

Marketing Hackers Prompt Library
// Ruolo // Sei un esperto ingegnere del software con competenze avanzate nelle tecnologie moderne. Il tuo compito è generare regole di sviluppo dettagliate basate sul *brief* fornito, includendo una proposta di **struttura delle cartelle** e di organizzazione dei file secondo le best practice. // Brief // Il *brief* del progetto sarà inserito in questa sezione // Istruzioni // 1. Leggi attentamente il *brief* fornito. 2. Analizza le informazioni per identificare gli obiettivi principali e le tecnologie indicate. 3. Genera un set di regole coerenti con il *brief*, organizzate in sezioni tematiche chiare. 4. Includi una proposta dettagliata per la **struttura delle cartelle** e l'organizzazione dei file dell'applicazione. 5. Assicurati che le regole siano specifiche, applicabili e rispettino le best practice delle tecnologie menzionate. 6. Se il *brief* non fornisce dettagli su un aspetto, utilizza best practice generali. **Nota**: Se il *brief* include tecnologie specifiche, fornisci regole dettagliate su come utilizzarle al meglio. Se necessario, includi link alla documentazione ufficiale. // Regole // - Le regole devono essere organizzate in sezioni logiche come "Stile del Codice", "Struttura del Progetto", "Performance", "Gestione degli Errori", ecc. -- La proposta per la struttura delle cartelle deve includere: -- Directory principali (es. `components/`, `pages/`, `hooks/`, `services/`). -- Dove inserire file come utilities, helper, tipi (Types), configurazioni, ecc. -- Convenzioni per il naming delle cartelle e dei file. -- Come organizzare le feature in base alle best practice. - Ogni regola deve essere chiara, specifica e supportata da esempi pratici dove possibile. - Mantieni uno stile formale e professionale. // Step // 1. Leggi il *brief* inserito nella sezione dedicata. 2. Identifica gli obiettivi principali del progetto e le tecnologie da utilizzare. 3. Proponi una struttura dettagliata per le cartelle e i file. 4. Struttura le regole seguendo una gerarchia chiara e organizzata. 5. Scrivi regole dettagliate per ciascun aspetto, includendo riferimenti a documentazione ufficiale se utile. 6. Verifica che il tuo output sia completo, coerente e applicabile. // Output // Il tuo output deve seguire questa struttura: 1. **Introduzione** - Sintesi dello scopo del progetto. - Panoramica delle tecnologie richieste. 2. **Stile del Codice** - Linee guida per mantenere il codice leggibile e modulare. 3. **Struttura del Progetto** - Proposta dettagliata per la struttura delle cartelle. - Esempi di come organizzare directory e file. - Convenzioni di nomenclatura (es. camelCase, kebab-case, PascalCase, ecc.). 4. **Utilizzo delle Tecnologie** - Regole specifiche per ciascuna tecnologia menzionata nel *brief*. 5. **Performance** - Suggerimenti per ottimizzare il codice e migliorare l'efficienza. 6. **Gestione degli Errori e Sicurezza** - Strategie per la gestione degli errori e la protezione da vulnerabilità. 7. **Testing** - Raccomandazioni per test unitari, di integrazione e di sistema. 8. **Note Finali** - Eventuali raccomandazioni aggiuntive.

Scegli tu in funzione delle tue necessità e competenza

Dove trovo Cursorrule?

Per definire le regole globali:

  1. Clicca sull'icona a forma di ingranaggio (⚙️) situata in alto a destra per accedere al menu delle impostazioni.
  2. Nel menu delle impostazioni, naviga alla sezione "Generale" e seleziona "Regole per l'AI".
  3. Nel campo di testo fornito, inserisci le istruzioni che desideri l'assistente AI segua.

Io scrivo sempre

Marketing Hackers Prompt Library
rispondi in italiano, leggi sempre .cursorrules

Poi crei le regole specifiche per il progetto

  1. Vai sul File>New Text File
  2. Clicco su Press Ctrl+k (Cmd+k su Mac) to Generate code
  1. Inserisci il Mega Prompt per la creazione delle regole
  2. Clicca su "Generate"
  3. Salva il file come .cursorrules nella root. (non preoccuparti, sei già nella root)

Il sistema è ora ben consapevole di ciò che deve fare e riduce gli errori che inevitabilmente farà, anche se in misura minore. È giunto il momento di fornirgli la documentazione specifica delle tecnologie che utilizzerà, in modo da poterle citare durante lo sviluppo.

Docs: Cursor supporta anche l'integrazione con documentazione esterna, permettendo agli sviluppatori di aggiungere riferimenti a documentazioni di librerie o framework direttamente nell'editor. Questo facilita l'accesso rapido alle informazioni necessarie durante lo sviluppo e rende il codice più preciso che mai.

Ad esempio, se devi sviluppare un tool che crea Ads in html5, che sono quelle app interattive con cui l'utente può giocare, come questo banner di Babbel che ti offre una micro-demo del prodotto

0:00
/0:17

Aggiungerò la documentazione ufficiale di riferimento da citare in fase di sviluppo con: https://support.google.com/google-ads/answer/9981650

Come aggiungo la documentazione?

  1. Apri Cursor e clicca sull'icona a forma di ingranaggio per accedere alle Impostazioni.
  2. Vai alla sezione Features e seleziona Docs.
  3. Clicca su Add New Doc.
  4. Inserisci l'URL della documentazione che desideri aggiungere.
  5. Dopo l'aggiunta, avvia l'indicizzazione manualmente cliccando sul pulsante di indicizzazione.
  6. Attendi che il punto rosso accanto al nome del documento diventi verde, indicando che l'indicizzazione è completata.

Abbiamo tutto ciò che ci serve per iniziare a lavorare al progetto. Se si tratta di piccole app, ti consiglio di rimanere in questo ambito, puoi saltare la prossima parte, ma se vuoi creare qualcosa di sostanzioso, deve sapere assolutamente cosa sono i Notepad.

Notepad: sono strumenti che facilitano la condivisione del contesto tra il compositor, le interazioni in chat e il team se più persone lavorano al progetto. Funzionano come documenti di riferimento avanzati, consentendo di creare contesti riutilizzabili per il tuo flusso di lavoro di sviluppo comuni per tutti.

Con i Notepad, puoi:

  • Organizzare le informazioni: puoi raccogliere idee, appunti e linee guida in un unico luogo, facilitando la pianificazione
  • Creare modelli riutilizzabili: i Notepad ti permettono di salvare frammenti di codice o template che puoi riutilizzare in diversi progetti, rendendo il processo più efficiente.
  • Collaborare con il team: puoi condividere i tuoi Notepad con colleghi, assicurandoti che tutti abbiano accesso alle stesse informazioni e standard, migliorando la coerenza del lavoro.
  • Accedere rapidamente alle risorse: utilizzando la sintassi @ , puoi aggiungere direttamente file relativi a quel Notepad.

Ho elaborato un mio personale modo di usarli in fase di progettazione, ho visto video, letto discussioni, articoli e documentazione e ognuno li usa a modo suo, io li usi per alcuni casi specifici:

  • Scomposizione del progetto in parti più piccole creando contesti specifici con la creazione di brief per la singola funzionalità che integrerà .cursorrules. Decido quali sono le funzionalità, poi ne "discuto" nella chat sulla base della @codebase (ne discutiamo dopo) che, grazie a .cursorrules, sa già in quale contesto sono. Infine, uso il workflow con il prompt del brief come abbiamo visto sopra (iterazione + prompt) e poi incollo il brief finale nel notepad. Assegno un nome comprensibile al notepad e salvo. Quando mi è ora di sviluppare quella funzionalità, vado nel composer (te lo presento dopo) e lo richiamo per dare un contesto preciso e non generico.
  • Prendere nota dei bug minori da risolvere più tardi. In questo caso, spiego cosa è successo a parole mie, copio l'errore della console se sei su un browser e l'eventuale errore del terminal, e poi sottopongo al composer richiamando il notepad.
  • Prendere nota di idee per nuove funzioni da sviluppare in seguito. Ciò che ho fatto per la scomposizione del progetto, lo replico per le nuove features.

Per creare un Notepad:

  1. Creare un nuovo Notepad:Nella sezione Notepad del pannello di controllo del Composer, clicca sul pulsante "+" per aggiungere un nuovo Notepad.
  2. Assegnare un nome significativo:Dai al tuo Notepad un titolo descrittivo che rifletta il suo contenuto, facilitando il riconoscimento e l'accesso futuro.
  3. Aggiungere contenuti e file rilevanti:Inserisci informazioni, contesto e allega file pertinenti direttamente nel Notepad, organizzandoli in modo chiaro e strutturato.
  4. Riferirsi al Notepad nel Composer o nella chat:Per richiamare il contenuto di un Notepad durante la scrittura nel Composer o nella chat, utilizza la sintassi @Notepad, sostituendo NomeNotepad con il nome assegnato al tuo Notepad.

Siamo arrivati alla parte in cui effettivamente sviluppiamo il nostro software

Ci sono tre modi per scrivere il tuo codice, due risiedono nel composer Agent e Normal e l'altro è l'editing in linea.

Iniziamo da quello che uso di più. Il composer.

Composer: uno lo strumento principale per gestire la scrittura del codice ed è in grado di agire su più file correlati, solo attraverso prompt, mantenendo la coerenza del progetto e potendo tornare agli stati precedenti (si chiama checkout).

Ci sono due modalità d'uso, ecco le differenza principali:

  • Modalità Normal: in questa modalità, il Composer consente di creare e modificare file e di accedere a comandi estesi tramite il simbolo @ (tra poco ti spiegherò cosa significa). In modalità Normal, l'utente deve specificare manualmente i file e il contesto su cui l'AI deve operare. Inoltre, richiede che l'utente esegua manualmente i comandi nel terminale e accetti, sempre manualmente, le modifiche del codice, mantenendo un maggiore controllo manuale.
  • La modalità Agent introduce un agente AI avanzato capace di comprendere il progetto completo, analizzando l'intero codice sorgente e comprendendo le relazioni tra i vari file e componenti. Esegue modifiche che coinvolgono più file simultaneamente, garantendo coerenza e integrità nel progetto. Interpreta e realizza istruzioni in linguaggio naturale per operazioni nel terminale, automatizzando compiti complessi e completando i compiti in modo indipendente, riducendo l'intervento manuale e aumentando l'efficienza.

Ho parlato in precedenza di comandi estesi usando @. Con @ puoi menzionare ed aggiungere al contesto tutto il materiale preparato in precedenza: i @notepad, i documenti con @docs, il file a cui stai lavorando @nomefile. Abbiamo detto che il Composer, in modalità Agent, ha tutto il codice a disposizione, mentre in modalità Normal no, concentrandosi sul singolo file di contesto. C'è però un modo per assicurarsi che anche in modalità Normal venga letto tutto il codice: aggiungerlo manualmente con il comando esteso @codebase.

Per assicurarsi che la Codebase sia sempre aggiornata e disponibile è necessario indicizzarla ogni tanto. Vai su setup (icona a forma di ingranaggio ⚙️)>Features>Codebase indexing>Do Compute Index.

Un esempio di prompt che uso per lanciare lo sviluppo di una feature è:

Marketing Hackers Prompt Library
Sviluppa la feature descritta nel @brief_feature_1 utilizzando la documentazione @documentazione. Leggi con attenzione @cursorrules, @brief_feature_1 e @documentazione prima di iniziare. Prima di eseguire qualunque modifica, spiegami come hai intenzione di procedere.

In questo prompt chiedo di leggere @cursorrules anche se dovrebbe farlo di default, perché spesso si dimentica. @brief_feature_1 è il notepad con il brief della funzionalità da sviluppare e, infine, @documentazione è la documentazione delle librerie che andremo a usare.

C'è un altro comando che non ho ancora menzionato è che a volte potrebbe risultare essere un salva-vita, il comando @web. Se trovi un tutorial online che spiega step-by-step come scrivere un funzionalità che ti piace in particolare, usa @web seguito dalla url. Il sistema userà anche quelle informazioni come riferimento.

💸
Un piccola curiosità. Come fa Cursor a comprendere codici lunghissimi? [Follow the money] Cursor ha ottenuto quasi 160 milioni da Super Big come OpenAI, Andreessen Horowitz , Thrive Capital, OpenAI e figure di spicco come Jeff Dean di Google. Lo avevo annunciato nelle news mesi fa e ha fatto la spesa con l'acquisizione di Supermaven. Una tecnologia specializzata in contenuti con contesto molto lungo permette di analizzare il contesto globale del progetto per fornire suggerimenti più pertinenti e accurati, riducendo il tempo necessario per implementare nuove funzionalità o correggere bug.

Altro modo in cui si può scrivere il codice è direttamente in linea con l'editor di VScode come si faceva una volta ma con l'aiuto dell'AI.

Ti ho dato un assaggio quando ho inserito il prompt usando Ctrl+K o Cmd+K per creare il brief nel Notepad. Ricordi? Stessa cosa, ma qui chiederai cose da programmatore. Come evidenziare una funzione e chiedere cosa fa, oppure evidenziarne un'altra e dirgli di fare il refactoring, ecc. Qui devi essere già un programmatore per addentrarti.

Se hai intenzione o necessità di vestire i panni del programmatore, ti interessa anche il Tab Completion, dove l'assistente AI suggerisce completamenti di codice contestuali mentre digiti, accelerando significativamente il processo di scrittura. Questa funzione sembra un po' troppo da programmatore: se non sai scrivere codice, cosa dovrebbe completarti? In realtà, col tempo, qualcosa imparerai, e in questo caso diventa molto utile, perché riuscirai a scrivere codice quasi corretto e il sistema lo completerà in modo corretto.

Vicino a questa funzione collocherei anche lo Smart Rewrite: se fai errori di sintassi o dimentichi qualche punto, il sistema li correggerà automaticamente.

Esiste anche una funzione di debugging automatico chiamata Bug Finder, ma, dal momento in cui mi chiedono 4 euro per il debugging dichiarando che è una beta e non funziona, per ora ho desistito dal provarla. Non dovrebbero pagare loro me per i test?

E ora una funzionalità chiave che, all'inizio, avevo ingenuamente ignorato, causando numerose "menzioni pseudo-ecclesiastiche": il sistema integrato di versioning.

Sistema di versioning integrato

Cursor eredita il supporto Git nativo imbottendolo di AI, che ci permette di lavorare in sicurezza con varie versioni del codice senza perdere il lavoro fatto quando l'AI impazzisce – e ti garantisco che lo farà.

👁️‍🗨️
Lo sai di cosa sto parlando? Un sistema di versioning è un tool che tiene traccia delle modifiche fatte al codice nel tempo, permettendo di tornare a versioni precedenti. Git è il sistema di versioning più famoso: salva una "storia" di tutte le modifiche in un progetto. I programmatori lo usano per collaborare creando "rami" (branch) separati per lavorare su nuove funzionalità senza rischiare di rovinare il lavoro degli altri. Una volta completato, uniscono il loro lavoro al progetto principale (merge). Questo permette a più persone di lavorare insieme sullo stesso progetto in modo organizzato.

Git è un incubo. I programmatori che lo hanno creato si sono impegnati a fare del loro meglio per renderlo utilizzabile solo da loro – e anche loro lo usano male. Per fortuna, i ragazzi di Cursor ne sono consapevoli e, quindi, puoi chiedere direttamente all'assistente AI di fare il lavoro per te.

Ovviamente, devi sapere cosa chiedere. Ho creato un quick win con il processo e i prompt per generare i comandi più importanti che devi conoscere per gestire le versioni del tuo progetto.

Quick Win #3 - Generare comandi Git con l'AI

Una mini-guida portare per partire con il piede giusto se vuoi programmare con l'AI

Leggi ora!

La guida finisce qui, per il momento. Abbiamo visto che, per massimizzare l'efficacia di Cursor AI, è fondamentale adottare un approccio strategico che bilanci le potenzialità dell'intelligenza artificiale con una metodologia di lavoro strutturata. Soprattutto per noi Non-Programmatori, perché, se qualcosa va storto, diventa difficile, se non impossibile, navigare il codice e capire il perché.

C'è ancora molto da dire e la piattaforma evolverà, richiedendo quindi aggiornamenti. Nel prossimo paragrafo concludo con alcune riflessioni sul perché tutto ciò è troppo bello per essere vero. Entriamo nella dark side...

Il lato oscuro della programmazione con l'AI e qualche soluzione

L'Intelligenza Artificiale nello Sviluppo Software: Un'Alleanza Strategica o una Dipendenza Pericolosa?

Abbiamo visto come l'intelligenza artificiale ci mette le ali, ma a quale costo? È veramente così semplice? Col tempo, quel sorrisetto che hai sulle labbra ora, pensando a cosa potrai creare da zero e che ti farà sentire libero, si trasformerà in un tira e molla di frustrazione nell'affrontare problemi complessi, nella speranza di soluzioni innovative e nel desiderio di padroneggiare le nuove tecniche di sviluppo.

Ci troviamo davanti a un'opportunità senza precedenti, ma anche a criticità complesse che richiedono una valutazione attenta. Da un lato, l'AI offre un potenziale enorme: accelera lo sviluppo, automatizza compiti ripetitivi e migliora la produttività. La velocità di sviluppo aumenta, i tempi di consegna si riducono e, in teoria, i costi diminuiscono. Inoltre, l'AI può essere un prezioso alleato nella fase di debugging, identificando errori sottili che potrebbero sfuggire all'occhio umano, contribuendo così a migliorare la qualità del codice e a ridurre il numero di bug.

Questa maggiore efficienza potrebbe rendere accessibili anche progetti di maggiore complessità, aprendo nuove possibilità a team più piccoli o con risorse limitate.

Eppure, l'utilizzo dell'AI nello sviluppo non è privo di inconvenienti. Una delle principali preoccupazioni riguarda la qualità del codice generato. Sebbene l'AI possa produrre codice funzionante, spesso questo codice non è ottimizzato, elegante o facilmente manutenibile. Un codice generato automaticamente potrebbe essere più complesso del necessario, rendendo difficile la comprensione e la modifica successiva, soprattutto per altri sviluppatori che non hanno partecipato alla sua creazione iniziale. Questo rischio potrebbe portare a un aumento del debito tecnico nel lungo termine, compromettendo la scalabilità e la sostenibilità del progetto.

Se gestisci un'azienda strutturata con un team di programmatori, una dipendenza eccessiva dall'AI potrebbe anche portare a una riduzione delle competenze fondamentali, soprattutto tra i programmatori junior. Imparare a programmare richiede pratica, capacità di problem-solving e una profonda comprensione dei principi informatici; affidarsi costantemente all'AI per risolvere i problemi può ostacolare lo sviluppo di queste competenze critiche, portando a una generazione di sviluppatori meno preparati e meno indipendenti.

Questo ricorda il concetto delineato da Fred Brooks nel suo libro del 1986, dove evidenzia la distinzione tra attività essenziali e accidentali nello sviluppo software. Brooks suggerisce che gli strumenti, come l'AI, possono alleviare solo le attività accidentali, ma non possono sostituire la necessità di una comprensione concettuale profonda.

Un ulteriore aspetto da considerare è la possibilità di errori imprevisti. L'AI impara dai dati che gli vengono forniti e, se questi dati contengono bias o imprecisioni, l'AI potrebbe generare codice con gli stessi difetti. Questo può portare a risultati inaspettati e potenzialmente dannosi, soprattutto in contesti critici come lo sviluppo di software medico o finanziario. Infine, la sicurezza del codice generato dall'AI è un aspetto da non sottovalutare: l'AI potrebbe introdurre vulnerabilità nel codice se non viene utilizzato e monitorato con attenzione.

In definitiva, l'integrazione dell'AI nello sviluppo software non è una soluzione magica. Per trarne il massimo beneficio, è necessario un approccio equilibrato che valorizzi l'assistenza dell'AI, pur mantenendo l'attenzione sulla crescita delle competenze umane e sulla qualità del codice.

Tutto ciò rafforza la mia convinzione che, come marketer, bisogna essere "smart enough" da resistere alla tentazione di creare app complesse, mantenendosi invece su piccoli sviluppi ad alto impatto o sulla creazione di MVP che andranno smontati e ricostruiti da un professionista. Almeno per ora.

Se hai apprezzato queste informazioni, aiutami a crescere. L'obiettivo è essere numerosi e affamati di conoscenza, così da poter chiedere alle aziende sconti, accessi in anteprima, inviti ad eventi, fondi per mantenere il progetto e privilegi per i membri di Marketing Hackers, che sarà per sempre gratuito.

Più siamo e più otterremo. Quindi, se ti piace il progetto, condividilo con la tua rete di colleghi e amici e invitali a iscriversi per diffondere la conoscenza e non rimanere indietro.

Stay Tuned!

Contenuto Riservato agli Iscritti
Iscriviti gratuitamente per sbloccare la guida completa

Cosa ottieni iscrivendoti:

  • Accesso a tutti gli episodi della newsletter
  • Guide e corsi completi sull'AI per marketer
  • Strumenti AI professionali (BrandPix, Short Video Suite)
  • Crediti gratuiti per iniziare subito

Altre guide per te

Strategie AI, tool e tattiche per far crescere il tuo business

Esplora tutte le guide